Python .Net 的 MD5 函数
Python MD5 Function to .Net
我正在尝试将 Python 脚本转换为 .net,这是一个接受输入密码并将其转换为可用于登录 IP 摄像机的密码字符串的函数。我相信这在我的测试中效果很好;
md5 = hashlib.md5(bytes(password, "utf-8")).digest()
chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
return "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])
恐怕我对 Python 的了解并不多,我唯一的另一个例子是 Perl,我对它的了解为零。我到这里不是很远 - 我真的不明白最后一行实际上在做什么 - 某种子串然后取某种反数值?
Private Function Calculate_Hash(Password As String) As String
Dim DVR_Hash As MD5 = MD5.Create()
Dim DVR_Hash_Bytes() As Byte = DVR_Hash.ComputeHash(Encoding.UTF8.GetBytes("password"))
Log(BitConverter.ToString(DVR_Hash_Bytes).Replace("-", String.Empty))
Return "" 'needs to be implemented
End Function
有没有人可以帮助我?
谢谢
假设您非常擅长 vb.net,但问题是您不了解 python 语法。
所以让我以 non-pythonic 的方式重写 python 脚本。
pythonic
res = "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])
non-pythonic
res = ''
i = 0
while i < len(md5):
sum_value = md5[i] + md5[i + 1]
res += chars[sum_value % 62]
i += 2
vb.net
Sub Main()
Dim md5Hash As MD5 = MD5.Create()
Dim md5Bytes() As Byte = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(password))
Dim chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()
Dim res As String
Dim i = 0
Dim sum As Integer
While i < md5Bytes.Length
sum = CInt(md5Bytes(i)) + CInt(md5Bytes(i + 1))
res += chars(sum Mod 62)
i += 2
End While
Console.WriteLine(res)
End Sub
我正在尝试将 Python 脚本转换为 .net,这是一个接受输入密码并将其转换为可用于登录 IP 摄像机的密码字符串的函数。我相信这在我的测试中效果很好;
md5 = hashlib.md5(bytes(password, "utf-8")).digest()
chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
return "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])
恐怕我对 Python 的了解并不多,我唯一的另一个例子是 Perl,我对它的了解为零。我到这里不是很远 - 我真的不明白最后一行实际上在做什么 - 某种子串然后取某种反数值?
Private Function Calculate_Hash(Password As String) As String
Dim DVR_Hash As MD5 = MD5.Create()
Dim DVR_Hash_Bytes() As Byte = DVR_Hash.ComputeHash(Encoding.UTF8.GetBytes("password"))
Log(BitConverter.ToString(DVR_Hash_Bytes).Replace("-", String.Empty))
Return "" 'needs to be implemented
End Function
有没有人可以帮助我?
谢谢
假设您非常擅长 vb.net,但问题是您不了解 python 语法。
所以让我以 non-pythonic 的方式重写 python 脚本。
pythonic
res = "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])
non-pythonic
res = ''
i = 0
while i < len(md5):
sum_value = md5[i] + md5[i + 1]
res += chars[sum_value % 62]
i += 2
vb.net
Sub Main()
Dim md5Hash As MD5 = MD5.Create()
Dim md5Bytes() As Byte = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(password))
Dim chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".ToCharArray()
Dim res As String
Dim i = 0
Dim sum As Integer
While i < md5Bytes.Length
sum = CInt(md5Bytes(i)) + CInt(md5Bytes(i + 1))
res += chars(sum Mod 62)
i += 2
End While
Console.WriteLine(res)
End Sub