我们要为外部接口实现加密.接口的所有者已经提供了如何在我们这边预先形成相同加密的文档.但是,这个文档是在C#中,我们使用PHP.
我们理解的大多数部分除了它们似乎将哈希值转换为int之外.他们的代码如下:
// hashString exists and is a md5 a like string
int[] keyBuffer = new int[hashString.length];
for (int i=0; i<hashString.length; i++) {
keyBuffer[i] = (int)hashString[i];
}
Run Code Online (Sandbox Code Playgroud)
在PHP中,将字母转换为int时,得到0(int).由于我们无法想象这是第三方意味着什么,我们相信C#会做其他事情.
C#也会转换为int 0,还是可能转换为char?
其次,原始的hashString长320.这意味着代码将创建一个320长的int?在PHP中,你没有像C#那样保留内存的想法.但是当我们尝试将320长字符串强制转换为int时,我们得到一个长度为19'字符的int.
当在字符串中对一个非常长的"数字"进行类型转换时,C#是否也会创建一个更短的int?