如何将hashlib从python移植到c#

2024-07-04 17:01:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将hashlib库从python移植到C#:

shaA = hashlib.sha256()
        shaA.update(yy)     
        shaA.update(xx)
        shaB = shaA.copy()
        hashA = shaA.digest()

        #Hash B
        shaB.update(yy)
        shaA = shaB.copy()
        hashB = shaB.digest()

        #Hash C
        shaA.update(xx)
        hashC = shaA.digest()

我的问题是我不知道update()在.NET中的SHA256()中的含义,以及它的副本(在.NET中SHA256不支持)和摘要。在

如果有人能帮我,我会非常感激的!在

谢谢


Tags: netupdatehashhashlibcopydigestxxsha256
2条回答

我不确定,没有测试过您的示例代码是否与此大致相同:

byte[] hashA, hashB, hashC;

using (var sha = new SHA256Managed())
{
    hashA = sha.ComputeHash(Encoding.UTF8.GetBytes(yy + xx));
    hashB = sha.ComputeHash(Encoding.UTF8.GetBytes(yy + xx + yy));
    hashC = sha.ComputeHash(Encoding.UTF8.GetBytes(yy + xx + yy + xx));
}

各种Python方法在the ^{} documentation中进行了说明。在

copy克隆哈希对象的当前状态;update在哈希对象的现有输入字符串上追加一个新字符串;digest从哈希对象的现有输入字符串生成哈希(也称为消息摘要),并将其作为字节序列返回。在

我在.NET或C中没有发现任何对等项。老实说,移植hashlib似乎没有什么价值。在我看来,使用内置的.nethash库可以使代码更短、更易于理解。在

你知道.NETFramework包含一个加密库,是吗?
下面是.NET的SHA256实现。 This是加密库的一个很好的概述。在

如果您在使用.NET加密库时遇到困难,也许您应该找出在C中实现您想要的东西的方法,而不是移植整个库来做您想做的事情。在

相关问题 更多 >

    热门问题