C#md5哈希和Php
我用md5散列在c#中加密了一个字符串,并用下面的代码将其存储到mysql数据库中C#md5哈希和Php,c#,php,hash,md5,C#,Php,Hash,Md5,我用md5散列在c#中加密了一个字符串,并用下面的代码将其存储到mysql数据库中 function getMd5Hash(string md5) { string md5; MD5 md5hash = new MD5CryptoServiceProvider(); md5hash.ComputeHash(ASCIIEncoding.ASCII.GetBytes(pass)); byte[] result = md5hash.Hash; StringBu
function getMd5Hash(string md5)
{
string md5;
MD5 md5hash = new MD5CryptoServiceProvider();
md5hash.ComputeHash(ASCIIEncoding.ASCII.GetBytes(pass));
byte[] result = md5hash.Hash;
StringBuilder strbuilder = new StringBuilder();
for (int i = 0; i < result.Length; i++)
{
strbuilder.Append(result[i].ToString("x2"));
}
md5 = strbuilder.ToString();
}
//salt is ten random character
string pass = getMd5Hash(getMd5Hash("fermentasi")+salt);
函数getMd5Hash(字符串md5)
{
字符串md5;
MD5 md5hash=新的MD5CryptoServiceProvider();
计算哈希(ascienceoding.ASCII.GetBytes(pass));
字节[]结果=md5hash.Hash;
StringBuilder strbuilder=新StringBuilder();
for(int i=0;i谢谢你的帮助,也很抱歉我的英语不好:)我最近遇到了同样的问题,并找到了一个很好的资源。我们还试图对PHP表单中的一个项目进行加密,将其存储在MySQL中,并希望在C#应用程序中对其进行解密(以及在C#应用程序中使用)。它使用的AES也比MD5安全得多。下面是我的PHP代码片段
function encrypt($text) {
$iv = "45287112549354892144548565456541";
$key = "anjueolkdiwpoida";
$block = mcrypt_get_block_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC);
$crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $text, MCRYPT_MODE_CBC, $iv]);
$crypttext64=base64_encode($crypttext);
return $crypttext64;
}
function decrypt ($text) {
$iv = "45287112549354892144548565456541";
$key = "anjueolkdiwpoida";
$crypttext64=base64_decode($text);
$decrypted = mcrypt_decrypt(MCRYPT_RIJNDAEL_256 , $key, $crypttext64 , MCRYPT_MODE_CBC, $key );
return $decrypted;
}
因此,您只需在将其存储到数据库之前调用encrypt($text\u to\u encrypt)
,然后调用decrypt($encrypted\u text)
将其取出。然而,由于我只是在PHP方面,您可能需要参考前面的链接,以了解在C#端对其进行解密的原因。只为半个答案道歉
这只有在你也能控制C#并且你可以选择离开MD5的情况下才能起作用 请不要使用MD5进行加密,因为它不安全。@Duenna如果它只是用于计算文件或资源的MD5哈希,那么就不会有salt值,因此这是用于加密的合理假设。加上一行…ASCII.GetBytes(pass)指向密码。@RonBeyer MD5是一种哈希算法,不作为加密的一部分使用。但作为更广泛的加密技术的一部分techniques@Anton,你能公布你实际使用的代码吗?问题中的代码将无法编译,并且不是有效的C#语法。重新生成散列的方法是从数据库中读取salt值,再次生成散列,并将其与存储的值进行比较。@Duenna我了解散列是什么,请参阅以获取有关为什么不应使用MD5来支持更好的函数(如SHA256)的信息。