programing

MS-SQL에 SHA1()과 동등한 것이 있습니까?

javajsp 2023. 10. 26. 20:45

MS-SQL에 SHA1()과 동등한 것이 있습니까?

MySQL에서 Microsoft SQL 서버로 몇 가지 저장 프로시저를 변환하는 중입니다.MySQL을 사용한 절차를 제외하고 모든 것이 잘 진행되고 있습니다.SHA1()기능.MS-SQL에서는 이와 동등한 것을 찾을 수 없는 것 같습니다.

에 대해 유효한 등가물을 아는 사람이 있습니까?SHA1()MS-SQL에서?

SQL Server 2005 이상에는 HashBytes() 함수가 있습니다.

MySQL이 생성하는 것과 정확히 같은 SHA1 해시를 얻으려면(즉, varchar로서) 해시 바이트를 sys.fn_varb와 hexsubstring으로 결합할 수 있습니다.예.

SELECT sys.fn_varbintohexsubstring(0, HashBytes('SHA1', 'password'), 1, 0)

자세한 내용은 http://accessrichard.blogspot.co.nz/2010/12/sql-server-and-net-equivalent-to-php.html 을 참조하십시오.

MSSQL 서버

HASHBYTES('SHA1', CAST('abcd@#' as nvarchar(max)))
CONVERT(VARCHAR(MAX), HASHBYTES('SHA1', CAST('abcd@#' as nvarchar(max))) , 2)

/* result */
0x77DD873DBAB2D81786AB9AE6EA91B1F59980E48C  
77DD873DBAB2D81786AB9AE6EA91B1F59980E48C

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"

구글 그룹에서 - A Possibility

http://www.stev.org/post/2011/01/30/MS-SQL-SHASum-Support.aspx 을 확인하고 싶을 수도 있습니다. 원하는 것을 만들 수 있도록 수정할 수 있어야 합니다.비록 약간의 c# 코딩이 필요할지도 모릅니다.

기본적인 지원은 없다고 생각합니다만, 이걸 확인해보시는 게 좋을 것 같네요...

http://blogs.msdn.com/sqlcat/archive/2005/09/16/469257.aspx

언급URL : https://stackoverflow.com/questions/184456/is-there-an-equivalent-to-sha1-in-ms-sql