在C#中获取SHA-256

时间:2010-12-22 19:36:03

标签: c# java c#-3.0

我正在将我的Java代码转换为C#。我无法将以下函数从Java转换为C#。这个fumction正在调用Update方法两次。我已按照以下方式尝试了C#代码

SHA256 sh = SHA256.Create();
            Encoding shEncoding = Encoding.UTF7;
            byte[] data = shEncoding.GetBytes(sn);
            byte hash = sh.ComputeHash(data);

但我不知道如何在C#中转换两个连续的更新函数调用。

String getSHA(byte[] sf,String sn,byte[] mac) throws NoSuchAlgorithmException 
    {

        MessageDigest md = MessageDigest.getInstance("SHA-256");
        md.update(sf);
        md.update(sn.getBytes());
        byte[] hash = md.digest(mac);
        StringBuilder sb = new StringBuilder();
        for(byte b : hash) {
            sb.append(String.format("%02x", b));
        }


       return sb.toString();
    }

先谢谢。

您的帮助/指导对我有帮助。

1 个答案:

答案 0 :(得分:0)

您可以在SHA256(Java中的〜TransformBlockTransformFinalBlock)上使用updatedigest,并使用Hash属性检索哈希值。