Bouncy castle HMAC 消息验证码

Bouncy castle HMAC 消息验证码,第1张

概述1、如果初始化的密钥key长度小于加密块的大小,比如sha1算法加密块的大小是64字节,那么构造一个inputPad数组,不足64字节的补零;如果key长度大于加密块的大小,那么使用digest将密钥进行一次散列运算,取出运算的结果inputPad,在shal算法中,运算结果是20字节长度,不足64字节的补零。将inputPad备份一份outputPad。 2、将inputPad数组所有的字节与I

1、如果初始化的密钥key长度小于加密块的大小,比如sha1算法加密块的大小是64字节,那么构造一个inputPad数组,不足64字节的补零;如果key长度大于加密块的大小,那么使用digest将密钥进行一次散列运算,取出运算的结果inputPad,在shal算法中,运算结果是20字节长度,不足64字节的补零。将inputPad备份一份outputPad。

2、将inputPad数组所有的字节与IPAD(0x36)进行异或运算,然后将运算的结果数组进行摘要 *** 作。将outputPad数组的所有字节与OPAD(ox5c)进行异或运算

3、对签名数据进行算列运算,即调用update方法

4、调用doFInal方法,

 byte[] tmp = new byte[digestSize];
        digest.doFinal(tmp,0);

        digest.update(outputPad,outputPad.length);
        digest.update(tmp,tmp.length);

        int     len = digest.doFinal(out,outOff);

计算第二步和第三步的消息摘要结果存储到tmp数组中,然后对outputPad数组进行散列运算,然后对tmp进行散列运算,最后对上面的两种运算求出信息摘要

 

5、RSA签名算法:

         其实就是使用私钥进行加密,私钥对同一个数据进行加密,产生的密文是一样的,即签名数据是一样的。

        使用BC产生证书的时候,都使用org.bouncycastle.jce.provIDer.JDKDigestSignature摘要签名类,而内部使用的是    public SHA256WithRSAEncryption()
        {
            super(NISTObjectIDentifIErs.ID_sha256,new SHA256Digest(),new PKCS1EnCoding(new RSABlindedEngine()));
        }

        RSA的签名算法。

总结

以上是内存溢出为你收集整理的Bouncy castle HMAC 消息验证码全部内容,希望文章能够帮你解决Bouncy castle HMAC 消息验证码所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1091790.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存