首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python MD5函数到.Net

Python MD5函数到.Net
EN

Stack Overflow用户
提问于 2022-03-23 11:13:29
回答 1查看 40关注 0票数 0

我正在尝试将Python转换为.net,这是一个函数,它接受输入密码并将其转换为密码字符串,可用于登录到IP摄像机。我相信我的测试效果很好;

代码语言:javascript
复制
    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一无所知。我要说的不是很远--我不太明白最后一行到底在做什么--某种子字符串,然后取某种反值?

代码语言:javascript
复制
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

有谁能帮我吗?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-23 11:49:50

假设您非常擅长vb.net,问题是您不知道python语法。

所以让我用非pythonic的方式重写python脚本。

毕多尼

代码语言:javascript
复制
res = "".join([chars[sum(x) % 62] for x in zip(md5[::2], md5[1::2])])

非丙酮

代码语言:javascript
复制
res = ''
i = 0
while i < len(md5):
    sum_value = md5[i] + md5[i + 1]
    res += chars[sum_value % 62]
    i += 2

vb.net

代码语言:javascript
复制
    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
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71586229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档