我正在尝试将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,我对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有谁能帮我吗?
谢谢
发布于 2022-03-23 11:49:50
假设您非常擅长vb.net,问题是您不知道python语法。
所以让我用非pythonic的方式重写python脚本。
毕多尼
res = "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])非丙酮
res = ''
i = 0
while i < len(md5):
sum_value = md5[i] + md5[i + 1]
res += chars[sum_value % 62]
i += 2vb.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 Subhttps://stackoverflow.com/questions/71586229
复制相似问题