我正在嘗試將 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
請問有沒有人可以幫助我?
謝謝
uj5u.com熱心網友回復:
假設您非常擅長 vb.net,而問題是您不知道 python 語法。
所以讓我以非pythonic的方式重寫python腳本。
蟒蛇
res = "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])
非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
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/448299.html
下一篇:更新VB.NET時總值未更新
