如果.net sha1 hash需要一个字节数组,并且php sha1()想要一个字符串,我可以匹配结果吗?

lyn*_*ynn 2 .net php sha1

我有一组字节我想应用sha1哈希.一个哈希将在.net中,另一个在PHP中.然后我会测试它们是否匹配.

在.net中,您可以创建一个字节数组并使用sha.ComputeHash().

byte[] data = new byte[DATA_SIZE];
byte[] result; 

SHA1 sha = new SHA1CryptoServiceProvider(); 
// This is one implementation of the abstract class SHA1.
result = sha.ComputeHash(data);
Run Code Online (Sandbox Code Playgroud)

在PHP中,您调用sha1($ string).

我无法对代码的.net方面做任何事情,但是如何从PHP中获取与.net将生成的相同的哈希?

请注意:我只能在PHP方面工作..net的东西是固定的,无法修改.谢谢!

Wel*_*bog 5

由于SHA1是一种常见的标准算法,因此它在PHP中的实现方式与在.NET中的实现方式相同.唯一不同的部分是如何调用这两个函数.

从技术上讲,SHA1是在字节而不是字符串上定义的,但是(如果我错了,请纠正我)PHP字符串使用单字节字符,因此字节和字符应该可以从SHA1算法的角度进行交换.

您必须确保二进制文件中的字符串值与.NET的字节数组相同,顺序相同.我不是一个PHP人,所以你必须得到别人的答案才能做到这一点.