将C#代码翻译成Ruby代码
我正在尝试将我的系统连接到银行支付系统。问题是,如果这不是一场彻底的灾难,他们的文档大多是不正确的 在3D安全系统的文档中,银行要求我填写一份html表格并提交给他们的系统。表单应该包括一些数据和数据的SHA1散列。我尝试了很多次,但银行的系统始终返回“哈希不正确”错误 在检查了他们的示例C#代码之后,我找到了一个用于获取哈希结果的函数。问题是函数对数据做了一些其他的处理,而不仅仅是散列。更大的问题是我无法找出这段代码对散列的字符串做了什么将C#代码翻译成Ruby代码,c#,asp.net,.net,C#,Asp.net,.net,我正在尝试将我的系统连接到银行支付系统。问题是,如果这不是一场彻底的灾难,他们的文档大多是不正确的 在3D安全系统的文档中,银行要求我填写一份html表格并提交给他们的系统。表单应该包括一些数据和数据的SHA1散列。我尝试了很多次,但银行的系统始终返回“哈希不正确”错误 在检查了他们的示例C#代码之后,我找到了一个用于获取哈希结果的函数。问题是函数对数据做了一些其他的处理,而不仅仅是散列。更大的问题是我无法找出这段代码对散列的字符串做了什么 public static string Create
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 framework上的经验,而且我在mac上,所以我无法轻松测试代码,MSDN绝对不适合我(我大部分时间都是Ruby开发人员,我对C了解得足够多)。如果有人能解释这些函数对要散列的字符串的作用,我将非常高兴。这很简单
notHashedStr
获取ASCII编码的字节require 'digest/sha1'
returnValue = Digest::SHA1.base64digest 'notHashedStr'
+1
base64digest
仅在ruby 1.9中可用。在1.8中,您也可以使用:Base64.encode64(Digest::SHA1.Digest('notHashedStr')
,这让我想起了哈希