我想从一个string计算一个SHA-1哈希,但是当我使用php的sha1函数计算string时,我得到了与在C#中尝试不同的东西。 我需要C#来计算相同的string作为PHP(因为PHP的string是由第三方计算,我不能修改)。 我如何让C#生成与PHP相同的散列? 谢谢!!! string= s934kladfklada@a.com C#代码(生成d32954053ee93985f5c3ca2583145668bb7ade86) string encode = secretkey + email; UnicodeEncoding UE = new UnicodeEncoding(); byte[] HashValue, MessageBytes = UE.GetBytes(encode); SHA1Managed SHhash = new SHA1Managed(); string strHex = ""; HashValue = SHhash.ComputeHash(MessageBytes); foreach(byte b in HashValue) { strHex += String.Format("{0:x2}", b); } PHP代码(生成a9410edeaf75222d7b576c1b23ca0a9af0dffa98) sha1();
在一个Makefile中,这可以通过如下方式来完成: g++ -DGIT_SHA1="`git log -1 | head -n 1`" … 这是非常有用的,因为二进制文件知道确切的提交SHA1,所以它可以转储它的情况下,段错误。 我怎样才能达到与CMake相同?
上下文:我从code.google下载了一个文件(Audirvana 0.7.1.zip)到我的Macbook Pro(Mac OS X 10.6.6)。 我想validation该特定文件的校验和发布为862456662a11e2f386ff0b24fdabcb4f6c1c446a(SHA-1)。 git hash-object给了我不同的散列,但openssl sha1返回了预期的862456662a11e2f386ff0b24fdabcb4f6c1c446a。 下面的实验似乎排除了任何可能的下载损坏或换行符差异,并指出实际上存在两种不同的algorithm: $ echo A > foo.txt $ cat foo.txt A $ git hash-object foo.txt f70f10e4db19068f79bc43844b49f3eece45c4e8 $ openssl sha1 foo.txt SHA1(foo.txt)= 7d157d7c000ae27db146575c08ce30df893d3a64 这是怎么回事?
我如何从NSString创build一个SHA1。 比方说NSString被设置为: NSString *message = @"Message"; 我可以使用PHP来创buildsha($message)的SHA1哈希。 但不幸的是,它不能像Objective-C那样工作。
我想使用SHA1Managed使用SHA1algorithm散列给定的byte[]数组。 byte[]散列将来自unit testing。 预期的散列是0d71ee4472658cd5874c5578410a9d8611fc9aef (区分大小写)。 我怎样才能做到这一点? public string Hash(byte [] temp) { using (SHA1Managed sha1 = new SHA1Managed()) { } }
我试图find答案,但我找不到答案… 如何检查我的SSL证书是否使用SHA1或SHA2? 我想问的原因是因为它可能与在Mozilla浏览器上未加载的证书有关。 有任何想法吗? 我可以通过cPanel检查吗?
我正在寻找一种以Java字节数组作为消息获取SHA-1校验和的方法。 我应该使用第三方工具,还是有内置的JVM可以帮助?
我正在build立一个系统,需要能够find是否更新字节blob 。 而不是存储整个blob(他们可以高达5MBs),我想我应该计算它的校验和,存储这个并稍后计算相同的校验和,看看博客是否已经更新。 目标是最小化以下(按此顺序): 校验和的大小 计算时间 碰撞的可能性(即使内容已被修改,也会发生2次相同的校验和)。 我们的系统碰撞不超过1 / 1,000,000是可以接受的。 关心的不是安全问题,而只是更新/错误检测,所以罕见的碰撞是可以的。 (这就是为什么我把它放在最小化的东西)。 另外,我们不能自己修改文本的斑点。 当然, md5 , crc或sha1会让人想起,如果我想要一个快速的解决scheme,我会去做的。 然而,不仅仅是一个快速的解决scheme,我正在寻找什么可以比较不同的方法,以及利弊 。
我正在考虑通过 Java中的Oauth实现一个获得Twitter授权的应用程序。 第一步是获取请求令牌 。 以下是应用程序引擎的Python示例 。 为了testing我的代码,我正在运行Python并使用Java检查输出。 以下是生成基于哈希的消息authentication码(HMAC)的Python示例: #!/usr/bin/python from hashlib import sha1 from hmac import new as hmac key = "qnscAdgRlkIhAUPY44oiexBKtQbGY0orf7OV1I50" message = "foo" print "%s" % hmac(key, message, sha1).digest().encode('base64')[:-1] 输出: $ ./foo.py +3h2gpjf4xcynjCGU5lbdMBwGOc= 如何在Java中复制这个例子? 我在Java中看到了一个HMAC的例子 : try { // Generate a key for the HMAC-MD5 keyed-hashing algorithm; see RFC 2104 // In practice, […]
给定两个不同的消息,A和B(大概20-80个字符的文本,如果大小都有关系),A的MD5摘要与B的MD5摘要相同的概率是多less,A的SHA1摘要是与B的SHA1摘要相同? 那是: (MD5(A) == MD5(B)) && (SHA1(A) == SHA1(B)) 假定没有恶意的意图,也就是说,消息不是为了find冲突而select的。 我只想知道这种情况发生的可能性。 我想这个机会是“天文数字低”,但我不知道如何validation这一点。 更多信息:可能的消息池的大小是有限的,但大(几亿)。 生日悖论的情况正是我所担心的。