首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中重现适合SHA512 SHA512的PHP哈希?

如何在C#中重现适合SHA512 SHA512的PHP哈希?
EN

Stack Overflow用户
提问于 2009-09-13 23:04:33
回答 3查看 6.1K关注 0票数 7

这个问题是不言而喻的。我用谷歌搜索了很多网站,很多方法,尝试了很多编码,但是我不能匹配它。

我正在尝试使字符串"asdasd“匹配。(http://www.fileformat.info/tool/hash.htm?text=asdasd)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-09-13 23:12:03

尝尝这个

代码语言:javascript
复制
using System.Security.Cryptography

public static string HashPassword(string unhashedPassword)
{
    return BitConverter.ToString(new SHA512CryptoServiceProvider().ComputeHash(Encoding.Default.GetBytes(unhashedPassword))).Replace("-", String.Empty).ToUpper();
}
票数 16
EN

Stack Overflow用户

发布于 2009-09-13 23:33:02

BitConverter运行得很好...

代码语言:javascript
复制
var testVal = "asdasd";
var enc = new ASCIIEncoding();
var bytes = enc.GetBytes( testVal );

var sha = new SHA512Managed();
var result = sha.ComputeHash( bytes );

var resStr = BitConverter.ToString( result );
var nodash = resStr.Replace( "-", "" );

nodash.Dump();

(已修复512位散列,抱歉:)

票数 1
EN

Stack Overflow用户

发布于 2014-02-01 10:39:31

我刚刚花了几个小时来尝试获得一个与.NET的加密函数相匹配的PHP哈希函数。一点也不好玩。

这里有多个挑战,因为加密的PHP实现返回一个base64编码的字符串,并且不会进行多次哈希迭代(例如,5000是加密的默认设置)。在我找到CryptSharp之前,我无法使用几个库从.NET获得类似的输出。它接受一个类似于PHP的(或原始的C)函数(例如"$6$round=5000$mysalt")的salt。请注意,没有尾随的$,如果不提供盐,它将自动生成一个随机的盐。

你可以在这里找到CryptSharp:http://www.zer7.com/software.php?page=cryptsharp

优秀的背景读物:- http://www.akkadia.org/drepper/SHA-crypt.txt

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1419069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档