我试图将我的系统连接到银行支付系统。问题是,如果它不是完全的灾难,他们的文档大多不是正确的。将C#代码翻译成Ruby代码
在3D系统安全的文件,银行要求我填写一张HTML表单并提交给他们的系统。表单应该包含一些数据和数据与数据的SHA1散列。我尝试了很多次,但银行的系统始终返回“哈希不正确”错误。
自己的例子C#代码一些检查后,我发现他们用来获取散列结果的函数。问题是函数正在对数据做一些其他的事情,而不是仅仅对它们进行哈希处理。而更大的问题是我找不到这段代码对散列的字符串做了什么。
public static string CreateHash(string notHashedStr)
{
SHA1 sha1 = new SHA1CryptoServiceProvider();
byte[] notHashedBytes = System.Text.Encoding.ASCII.GetBytes(notHashedStr);
byte[] hashedByte = sha1.ComputeHash(notHashedBytes);
string hashedStr = System.Convert.ToBase64String(hashedByte);
return hashedStr;
}
我对Net框架几乎没有经验,也是我在Mac上,所以我不能方便地测试代码,MSDN是绝对不适合我(我是一个Ruby开发者的大部分时间,我知道C)。如果任何人都可以解释这些函数对字符串进行散列的功能,我会很高兴。
伊克!你在说什么*银行? ;-)(抱歉题外话) – Jeroen 2012-07-31 21:04:34
该散列让我想起了[OAuth的(http://oauth.net/core/1.0/) – 2012-07-31 21:14:54