이전에 VB.NET으로 작성된 파이썬에서 해시 함수를 구현하려고합니다. 이 함수는 문자열을 받아 해시를 반환합니다. 해시는 데이터베이스에 저장됩니다. 같은 열 개 문자열이 두 기능에 대한 입력으로 사용됩니다 e33110e0f494d2cf47700bd204e18f65a48817b9c40113771bf85cc69d04b2d8SHA256은 파이썬과 VB.NET에서 값을 해시하여 다른 해시를 생성합니다.
반환
def computehash(source):
if source == "":
return ""
m = hashlib.sha256()
m.update(str(source).encode('ascii'))
return m.hexdigest()
: 61ba4908431dfec539e7619d472d7910aaac83c3882a54892898cbec2bbdfa8c
내 파이썬 재 구현을 반환
Public Function computeHash(ByVal source As String)
If source = "" Then
Return ""
End If
Dim sourceBytes = ASCIIEncoding.ASCII.GetBytes(source)
Dim SHA256Obj As New Security.Cryptography.SHA256CryptoServiceProvider
Dim byteHash = SHA256Obj.ComputeHash(sourceBytes)
Dim result As String = ""
For Each b As Byte In byteHash
result += b.ToString("x2")
Next
Return result
.
함수가 다른 해시를 반환하는 이유는 누구에게 알 수 있습니까?
바이트를 확인하십시오. 그냥 인코딩이 다를 수 있습니다 – Plutonix
어쩌면 빈 문자열 (해시 VB.NET 코드에서 변경 필요) 또는 문제를 좁히기 위해 단일 바이트로 시작합니다. –