我有一个 PHP Web 服务,我发现它正在向我的 C# 传递一个 SHA-1 encrupted 值。传递给我的示例数据是“8cb2237d0679ca88db6464eac60da96345513964”,我知道它可以转换为“12345”。
如何使用类似于以下的代码将哈希值转换回“12345”
public static string HashCode(string str)
{
string rethash = "";
try
{
System.Security.Cryptography.SHA1 hash = System.Security.Cryptography.SHA1.Create();
System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();
byte[] combined = encoder.GetBytes(str);
hash.ComputeHash(combined);
rethash = Convert.ToBase64String(hash.Hash);
}
catch (Exception ex)
{
string strerr = "Error in HashCode : " + ex.Message;
}
return rethash;
}
- 编辑 *
这是一些 RUBY 代码,它也适用于“8cb2237d0679ca88db6464eac60da96345513964”和“12345”
require "digest/sha1"
class User
attr_accessor :password
def initialize(password)
@password = hash_password(password)
end
def hash_password(password)
Digest::SHA1.hexdigest(password)
end
def valid_password?(password)
@password == hash_password(password)
end
end
u = User.new("12345")
p u.password # => "8cb2237d0679ca88db6464eac60da96345513964"
p u.valid_password?("not valid") # => false
p u.valid_password?("12345") # => true