Tag: python

使用C#,BouncyCastle和导入的RSA密钥进行RSA签名和validation – 内部使用Python示例和非工作C#代码示例

我一直在试着用C#和BouncyCastle工作来解决RSA数据签名和validation的一个小例子。 RSACryptoServiceProvider.VerifyHash()总是在一个适用于Python和M2Crypto的示例中返回false。 我已经validation了工作示例和C#示例之间的哈希签名是相同的,它就在那里我被卡住了。 我觉得我错过了一些重要的细节。 工作的Python代码和非工作的C#代码如下。 关键是生成的 openssl genrsa -out testkey.pem 1024 openssl rsa -in testkey.pem -pubout > testkey.pub Python代码(工作): private = “””—–BEGIN RSA PRIVATE KEY—– MIICXQIBAAKBgQCxSHbp1ID/XHEdzVzgqYR1F/79PeMbqzuKNZChvt1gFObBhKyB pgaHDHw3UZrO8s/hBEE/Mpe2Lh90ZAFdPIXq+HyVoznXMoJYBv0uLDApvSQbJNOd f7T5VwmpBbkfj1NAlm39Eun9uBSokEOnB24g+bczPQPGOASrQ2Ly9afOZQIDAQAB AoGBAIEzQIZ1OnXgVwfTLMcGg+QaUtkYizUU+9Vj6D4YrZliYjHSkS4DY2p0rOpb 7Ki5yMpCoZJ/OpWo03+tilj6zNUU6X3aHrPPSv8jcsE0sDi9zYJr/Ztk3EG23sad bM28Bb4fV/Z0/E6FZJrmuvI2dZP/57oQSHGOhtkHFO21cW5BAkEA3l/i5Rc34YXc WHYEsOYe0kAxS4dCmhbLWaWvsghW/TomjdxzePsO70GZZqRMdzkfA1iS1OrK+pP4 4suL2rSLrQJBAMwXFnBp4Jmek0CTSxoYf6q91eFm/IRkGLnzE1fEZ76vQOBTas8T /mpjNQHSEywo/QB62h9A8hy7XNrfZJAMJJkCQA5TYwybKFBxDTbts3Op/4ZP+F0D Q7klisglsmHnw6Lgoic1coLyuY2UTkucfgiYN3VBuYPZ9GWcLsZ9km7ufqkCQQCz NVa70Qyqd+cfXfcla/u2pskHCtKTQf3AUmRavhjHBMa39CemvAy7yG9EMP4q2bcH U9jydqnidtdbTavVHQSJAkA0zJtLzHGPtQqQaI7K6kBDXYPqloGnQxHxad0HPx2e Vj2qv1tEsqeG6HC7aL/afXOtxcfjq4oMHbGUjDv+dGfP —–END RSA PRIVATE KEY—–“”” public = “””—–BEGIN PUBLIC KEY—– MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCxSHbp1ID/XHEdzVzgqYR1F/79 PeMbqzuKNZChvt1gFObBhKyBpgaHDHw3UZrO8s/hBEE/Mpe2Lh90ZAFdPIXq+HyV oznXMoJYBv0uLDApvSQbJNOdf7T5VwmpBbkfj1NAlm39Eun9uBSokEOnB24g+bcz PQPGOASrQ2Ly9afOZQIDAQAB —–END PUBLIC KEY—–“”” message […]

读取文件特定行号的有效方法。 (奖金:Python手册错误打印)

我有一个100 GB的文本文件,这是一个来自数据库的BCP转储。 当我尝试用BULK INSERT导入它时,我在行号219506324上得到了一个神秘的错误。在解决这个问题之前我想看看这行,但是我最喜欢的方法是 import linecache print linecache.getline(filename, linenumber) 抛出MemoryError 。 有趣的是,手册说 “这个函数永远不会抛出exception。” 在这个大文件中,当我尝试读取第1行时,它会抛出一个,我有大约6GB的可用RAM … 我想知道到达那条无法到达的线路最优雅的方法是什么。 可用的工具是Python 2,Python 3和C#4(Visual Studio 2010)。 是的,我明白我总能做点什么 var line = 0; using (var stream = new StreamReader(File.OpenRead(@”s:\source\transactions.dat”))) { while (++line < 219506324) stream.ReadLine(); //waste some cycles Console.WriteLine(stream.ReadLine()); } 哪个会奏效,但我怀疑这是最优雅的方式。 编辑:我正在等待关闭此线程,因为包含该文件的硬盘正在被另一个进程使用。 我将测试建议的方法和报告时间。 谢谢大家的建议和意见。 结果是我实施了Gabes和Alexes方法来查看哪一个更快。 如果我做错了什么,请告诉我。 我正在使用Gabe建议的方法在我的100GB文件中使用第10百万行,然后使用Alex建议的方法,我将其松散地翻译成C#…我自己添加的唯一内容是,首先阅读300 MB文件到内存只是为了清除硬盘缓存。 const string file = […]

使用IronPython在C#中运行特定的Python函数

到目前为止,我有一个简单的类包装python引擎(IronPython)供我使用。 虽然代码看起来很大,但它非常简单,所以我在这里复制它以便更清楚地解决我的问题。 这是代码: public class PythonInstance { ScriptEngine engine; ScriptScope scope; ScriptSource source; public PythonInstance() { engine = Python.CreateEngine(); scope = engine.CreateScope(); } public void LoadCode(string code) { source = engine.CreateScriptSourceFromString(code, Microsoft.Scripting.SourceCodeKind.Statements); source.Compile(); } public void SetVariable(string key, dynamic variable) { scope.SetVariable(key, variable); } public void RunCode() { source.Execute(scope); } public void CallFunction(string function) { […]

免费加密库

什么是最稳定和最有用的密码学库,它们是: 用/写的python,c ++,c#,。net opensource,GNU或其他免费许可

是否有支持嵌入HTML页面的跨OS GUI框架?

我想开发一个跨系统使用的桌面应用程序(win,mac,linux),是否有一个GUI框架可以让我为所有3个平台编写一次代码并拥有一个完全可脚本化的嵌入式Web组件? 我需要它有一个API来在应用程序和网页javascript之间进行通信。 我知道C#,JavaScript和一点python。

Python C# – Python和C#上的Unicode字符不一样

我在处理文本文件时遇到问题。 我发现Python和C#上的字符Unicode表示是不同的。 在特定索引上使用Python 3.5.2打开文件时,unicode字符为: with open(‘file.txt’, ‘r’, encoding = ‘utf-8’) as f: text = f.read() text[189] // Output: u”\U0001F464″ 在同一索引上使用C#打开文件时,此char由两个字符表示: string text = File.ReadAllText(“file.txt”, Encoding.UTF8); Console.WriteLine(((int)text[189]).ToString(“X4”)); // Output: “D83D” string text = File.ReadAllText(“file.txt”, Encoding.UTF8); Console.WriteLine(((int)text[190]).ToString(“X4”)); // Output: “DC64” 所以在python上,这个char在索引189上,在c#上在189和190上。 在fileformat网站上参考这个字符: http://www.fileformat.info/info/unicode/char/1F464/index.htm 正如你在那里看到的那样,这个字符的表示有不同的长度。 在C#/ C / C ++ / Java“\ uD83D \ uDC64”和python u“\ U0001F464”上。 文本中有问题的部分: […]

读取一个非常大的单行txt文件并将其拆分

我有以下问题:我有一个近500mb大的文件。 它的文字,全部在一行。 文本用虚线结尾分隔,它叫做ROW_DEL并且在文本中如下: this is a line ROW_DEL and this is a line 现在我需要进行以下操作,我想将此文件拆分为其行,以便我得到这样的文件: this is a line and this is a line 问题,即使我用Windows文本编辑器打开它,它也会破坏,因为文件很大。 是否有可能像我在C#,Java或Python中提到的那样拆分此文件? 什么是最好的灵魂,不要过度使用我的CPU。

为什么我不能在64位机器上正确读取HKCU中的32位注册表值?

我对Windows 7注册表问题感到困惑,虽然各种问题和答案让我有了一些方法,但我见过的那些问题解决了我的特定问题。 我不知道其他Windows版本是否会影响这个问题,但我们都有win7x64机器。 我们的工作中有各种各样的工具,一些C ++,一些C#,一些python(2.6)等。我们还运行32位和64位工具。 过去,我们很高兴在HKLM存储注册信息。 我们一直在努力将事情转移到HKCU 。 关于是否要这样做,影响UAC等,我们已经进行了很多讨论。我们真的想尝试采取这一举措。 那说: 我们无法从HKCU/software/CompanyABC/App读取/编写注册表项。 我们在python中编写了一个安装app ,使用_winreg将注册表项写入上述位置。 我们是否指定KEY_WRITE | KEY_WOW64_32KEY或只是KEY_WRITE,值被写入HKCU/Software/WOW6432Node/companyABC/app 。 精细。 然后我有一个C#应用程序试图读取这些值。 使用Microsoft.Win32.Registry ,我打开子项(’HKCU / Software / CompanyABC / app’),我没有看到我的值。 事实certificate我看到以下行为: 从HKLM读取/写入注册表项时,这些东西都可以正常工作。 python应用程序将写入HKLM/Softare/Wow6432Node/CompanyABC/app ,C#代码将从该位置读取。 考虑到我们如何构建C#应用程序以及通过python编写注册表值,这一切都是正确的 从HKCU读取/写入注册表值,我得到不同的行为。 _winreg函数将写入HKCU/Sofrware/Wow6432Node/CompanyABC/app ,但C#应用程序将从HKCU/Software/CompanyABC/app读取。 C#应用程序是作为x86应用程序构建的(不是任何CPU而不是x64)所以我假设应用程序将被正确地重定向到wow6432Node ,但它似乎没有。 经过一番调查后, HKCU/Software似乎有所不同。 本文似乎表明该区域是“共享”而未重定向。 如果是这种情况,那么我无法理解为什么我们的python应用程序(再次使用_winreg)正在写入使用Wow6432Node HKCU中的某个位置 – 看起来它应该在没有重定向的情况下编写它。 我想它可能是_winreg一个bug。 我真的想避免在我们的工具中明确地使用WOW6432Node ,但这就是我今天所处的位置。 任何人都可以向我解释如何使32位和64位进程的注册表访问进入HKCU正常工作,而不必求助于32位配置单元的硬编码路径?

如何使用IronPython将参数传递给Python脚本

我有以下C#代码,我从C#调用python脚本: using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Windows.Forms; using System.Linq; using System.Text; using System.Threading.Tasks; using IronPython.Hosting; using Microsoft.Scripting.Hosting; using IronPython.Runtime; namespace RunPython { class Program { static void Main(string[] args) { ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null); ScriptRuntime runtime = new ScriptRuntime(setup); ScriptEngine engine = Python.GetEngine(runtime); ScriptSource source = engine.CreateScriptSourceFromFile(“HelloWorld.py”); ScriptScope scope = engine.CreateScope(); […]

发布使用python脚本的MVC应用程序

我目前有通过Process调用python脚本的MVC项目(新的processStartinfo(“/ path / to / python.exe”,“/ path / to / scripts.py”)。这在visual studio中运行得非常好。当我发布这个时在azure上如何能够调用python.exe?(我可能没有准确地构建这个问题,因为这是我第一个发布的网页,并且没有完全理解发布) PS我确实尝试使用IronPython,但由于我的脚本使用NLTK,我遇到了一堆问题所以用pip安装python&nltk比较容易,然后通过带有/ path / to / script参数的命令行调用python.exe。 PY。 任何输入都表示赞赏。 编辑:我的homeController启动一个进程,它将path_of_python,path_of_script传递给命令行,重定向输出并对它返回的数据(从输出)进行处理。