在C#里面,我引用SHA1加密一个明文,然后引用另一串明文进行分块加密,但是现在要转到JAVA里面实现,对于JAVA不是很了解,哈希的分块加密也没找到解释的文章,各位能给点思路吗?
如下是C#的实现方式:
public static void Main()
{
string passWord = "QWER1234.COM";
string userWame = "03385";
SHA1 sHA = SHA1.Create();
byte[] bytes = Encoding.UTF8.GetBytes(passWord);
byte[] bytes2 = Encoding.UTF8.GetBytes (userWame);
byte[] buffer = sHA.ComputeHash (bytes);
Console.WriteLine("1-ComputeHash : {0}", BytesToStr(buffer));
sHA.TransformBlock(bytes2, 0, bytes2.Length, bytes2, 0);
Console.WriteLine("2-ComputeHash : {0}", BytesToStr(buffer));
Console.WriteLine("3-ComputeHashBASE64 : {0}", Convert.ToBase64String(sHA.ComputeHash (buffer)));
}
public static string BytesToStr(byte[] bytes)
{
StringBuilder str = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
str.AppendFormat("{0:X2}", bytes[i]);
return str.ToString();
}
如下是控制台输出结果:
1-ComputeHash : 0D398019BAEBA2B26C7057E9DA0332364A2681DD
2-ComputeHash : 0D398019BAEBA2B26C7057E9DA0332364A2681DD
3-ComputeHashBASE64 : cbCE7PWS9MSwufR9LTs6+79F4kA=