GEO*_*HET 32 mysql sql t-sql sql-server sha1
将一些存储过程从MySQL转换为Microsoft SQL服务器.除了一个程序使用MySQL SHA1()
函数外,一切进展顺利.我似乎无法在MS-SQL中找到相同的东西.
有没有人知道SHA1()
MS-SQL上的有效等价物?
Pet*_*ter 22
如果你想获得一个完全像MySQL生成它的SHA1哈希(即作为varchar),你可以将HashBytes与sys.fn_varbintohexsubstring结合起来.例如
SELECT sys.fn_varbintohexsubstring(0, HashBytes('SHA1', 'password'), 1, 0)
Run Code Online (Sandbox Code Playgroud)
有关详细信息,请参阅http://accessrichard.blogspot.co.nz/2010/12/sql-server-and-net-equivalent-to-php.html.
SQL服务器
HASHBYTES('SHA1', CAST('abcd@#' as nvarchar(max)))
CONVERT(VARCHAR(MAX), HASHBYTES('SHA1', CAST('abcd@#' as nvarchar(max))) , 2)
/* result */
0x77DD873DBAB2D81786AB9AE6EA91B1F59980E48C
77DD873DBAB2D81786AB9AE6EA91B1F59980E48C
Run Code Online (Sandbox Code Playgroud)
C#
using (SHA1Managed sha1 = new SHA1Managed())
{
string input = "abcd@#";
var hash = sha1.ComputeHash(Encoding.Unicode.GetBytes(input));
var sb = new StringBuilder(hash.Length * 2);
foreach (byte b in hash)
{
sb.Append(b.ToString("X2")); // can be "x2" if you want lowercase
}
return sb.ToString();
}
//result "77DD873DBAB2D81786AB9AE6EA91B1F59980E48C"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27874 次 |
最近记录: |