110,545
社区成员
发帖
与我相关
我的任务
分享
<?php
$salted="abcdefghijklm";
$digest = hash("sha256", $salted, true);
for ($i = 1; $i < 5000; ++$i) {
$digest = hash("sha256", $digest.$salted, true);
}
echo base64_encode($digest) ;
?>
var salted = "abcdefghijklm";
var s = Encoding.ASCII.GetBytes(salted);
var hasher = new SHA256Managed();
hasher.ComputeHash(s);
for (var i = 0; i < 5000-1; i++)
{
hasher.ComputeHash(hasher.Hash.Concat(s).ToArray());
}
Console.WriteLine(Convert.ToBase64String(hasher.Hash, Base64FormattingOptions.None));
F+TfwIODel8hANq7BYB2yMUpxtI5MG8mS8EICI4Xxbw=
<?php
$salted="abcdefghijklm";
$digest = hash("sha256", $salted, true);
echo $digest ;
/*
此处输出结果:ó“âÊÃQOνTå‰êÒ¼>ã7[Í‹x–Ðör®±D
C#加密后输出结果:����QOνT��Ҽ>�7[͋x���r��D
*/
for ($i = 1; $i < 5000; ++$i) {
$digest = hash("sha256", $digest.$salted, true);
}
echo base64_encode($digest) ;
?>
SHA256 sha256 = new SHA256Managed();
string strKey = "abcdefghijklm";
byte[] tmpByte = sha256.ComputeHash(Encoding.UTF8.GetBytes(strKey));
for (int i = 1; i < 5000; ++i)
{
string strnew = Encoding.UTF8.GetString(tmpByte) + strKey;
tmpByte = sha256.ComputeHash(Encoding.UTF8.GetBytes(strnew));
}
string key = Convert.ToBase64String(tmpByte);
Console.WriteLine(key);
修改了下
public void SHA256Encrypt()
{
string strKey = "abcdefghijklm";
SHA256 sha256 = new SHA256Managed();
byte[] byteKey = GetKeyByteArray(strKey);
byte[] byteData = sha256.ComputeHash(byteKey);
sha256.Clear();
for (int i = 1; i < 5000; ++i)
{
sha256 = new SHA256Managed();
string strnew = GetStringValue(byteData) + strKey;
byteData = sha256.ComputeHash(GetKeyByteArray(strnew));
sha256.Clear();
}
Console.WriteLine(Convert.ToBase64String(byteData));
}
private string GetStringValue(byte[] Byte)
{
UTF8Encoding Asc = new UTF8Encoding();
return Asc.GetString(Byte);
}
private byte[] GetKeyByteArray(string strKey)
{
UTF8Encoding Asc = new UTF8Encoding();
int tmpStrLen = strKey.Length;
byte[] tmpByte = new byte[tmpStrLen - 1];
tmpByte = Asc.GetBytes(strKey);
return tmpByte;
}
这是我转换的,但结果对不上。不知道是哪里错了
public string SHA256Encrypt(string strIN)
{
//string strIN = getstrIN(strIN);
byte[] tmpByte;
SHA256 sha256 = new SHA256Managed();
tmpByte = sha256.ComputeHash(GetKeyByteArray(strIN));
sha256.Clear();
ASCIIEncoding Asc = new ASCIIEncoding();
return Asc.GetString(tmpByte);
}
楼主可参考一下