<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      java sm3加密

      文檔

      java sm3加密

      java sm3加密是一種加密算法。Sm3算法是我國自己設計的哈希算法,作用主要是數字簽名及驗證、消息認證、隨機數產生等。Sm3算法的運行過程如下:1、使填充后的數據長度是512的整數倍。2、把填充后的信息按照512比特進行分組。3、迭代壓縮得到最后的哈希值。
      推薦度:
      導讀java sm3加密是一種加密算法。Sm3算法是我國自己設計的哈希算法,作用主要是數字簽名及驗證、消息認證、隨機數產生等。Sm3算法的運行過程如下:1、使填充后的數據長度是512的整數倍。2、把填充后的信息按照512比特進行分組。3、迭代壓縮得到最后的哈希值。

      ? ?

      java sm3加密是什么?讓我們一起來了解一下吧!

      java sm3加密是一種加密算法。Sm3算法是我國自己設計的哈希算法,在商用密碼體系當中,sm3算法的作用主要是數字簽名及驗證、消息認證、隨機數產生等。Sm3算法是公開的,進行加密會產生一個32字節的值。

      Sm3算法的運行過程如下:

      1.填充:使填充后的數據的長度是512的整數倍

      2.進行分組:把填充后的信息按照512比特一個分組進行分組。

      3.迭代壓縮得到最后的哈希值:如果信息分為N組,那么IV(N)就是最后得到的雜湊值。

      java中采用sm3算法加密代碼如下:

      public?class?SM3?{
      ?
      ????public?static?final?byte[]?iv?=?{?0x73,?(byte)?0x80,?0x16,?0x6f,?0x49,
      ????????????0x14,?(byte)?0xb2,?(byte)?0xb9,?0x17,?0x24,?0x42,?(byte)?0xd7,
      ????????????(byte)?0xda,?(byte)?0x8a,?0x06,?0x00,?(byte)?0xa9,?0x6f,?0x30,
      ????????????(byte)?0xbc,?(byte)?0x16,?0x31,?0x38,?(byte)?0xaa,?(byte)?0xe3,
      ????????????(byte)?0x8d,?(byte)?0xee,?0x4d,?(byte)?0xb0,?(byte)?0xfb,?0x0e,
      ????????????0x4e?};
      ?
      ????public?static?int[]?Tj?=?new?int[64];
      ?
      ????static
      ????{
      ????????for?(int?i?=?0;?i?=?0?&&?j?=?0?&&?j?<=?15)
      ????????{
      ????????????return?GG1j(X,?Y,?Z);
      ????????}
      ????????else
      ????????{
      ????????????return?GG2j(X,?Y,?Z);
      ????????}
      ????}
      ?
      ????//?邏輯位運算函數
      ????private?static?int?FF1j(int?X,?int?Y,?int?Z)
      ????{
      ????????int?tmp?=?X?^?Y?^?Z;
      ????????return?tmp;
      ????}
      ?
      ????private?static?int?FF2j(int?X,?int?Y,?int?Z)
      ????{
      ????????int?tmp?=?((X?&?Y)?|?(X?&?Z)?|?(Y?&?Z));
      ????????return?tmp;
      ????}
      ?
      ????private?static?int?GG1j(int?X,?int?Y,?int?Z)
      ????{
      ????????int?tmp?=?X?^?Y?^?Z;
      ????????return?tmp;
      ????}
      ?
      ????private?static?int?GG2j(int?X,?int?Y,?int?Z)
      ????{
      ????????int?tmp?=?(X?&?Y)?|?(~X?&?Z);
      ????????return?tmp;
      ????}
      ?
      ????private?static?int?P0(int?X)
      ????{
      ????????int?y?=?rotateLeft(X,?9);
      ????????y?=?bitCycleLeft(X,?9);
      ????????int?z?=?rotateLeft(X,?17);
      ????????z?=?bitCycleLeft(X,?17);
      ????????int?t?=?X?^?y?^?z;
      ????????return?t;
      ????}
      ?
      ????private?static?int?P1(int?X)
      ????{
      ????????int?t?=?X?^?bitCycleLeft(X,?15)?^?bitCycleLeft(X,?23);
      ????????return?t;
      ????}
      ?
      ????/**
      ?????*?對最后一個分組字節數據padding
      ?????*
      ?????*?@param?in
      ?????*?@param?bLen
      ?????*????????????分組個數
      ?????*?@return
      ?????*/
      ????public?static?byte[]?padding(byte[]?in,?int?bLen)
      ????{
      ????????int?k?=?448?-?(8?*?in.length?+?1)?%?512;
      ????????if?(k?>?(32?-?n));
      ????}
      ?
      ????private?static?int?bitCycleLeft(int?n,?int?bitLen)
      ????{
      ????????bitLen?%=?32;
      ????????byte[]?tmp?=?bigEndianIntToByte(n);
      ????????int?byteLen?=?bitLen?/?8;
      ????????int?len?=?bitLen?%?8;
      ????????if?(byteLen?>?0)
      ????????{
      ????????????tmp?=?byteCycleLeft(tmp,?byteLen);
      ????????}
      ?
      ????????if?(len?>?0)
      ????????{
      ????????????tmp?=?bitSmall8CycleLeft(tmp,?len);
      ????????}
      ?
      ????????return?bigEndianByteToInt(tmp);
      ????}
      ?
      ????private?static?byte[]?bitSmall8CycleLeft(byte[]?in,?int?len)
      ????{
      ????????byte[]?tmp?=?new?byte[in.length];
      ????????int?t1,?t2,?t3;
      ????????for?(int?i?=?0;?i?>?(8?-?len));
      ????????????t3?=?(byte)?(t1?|?t2);
      ????????????tmp[i]?=?(byte)?t3;
      ????????}
      ?
      ????????return?tmp;
      ????}
      ?
      ????private?static?byte[]?byteCycleLeft(byte[]?in,?int?byteLen)
      ????{
      ????????byte[]?tmp?=?new?byte[in.length];
      ????????System.arraycopy(in,?byteLen,?tmp,?0,?in.length?-?byteLen);
      ????????System.arraycopy(in,?0,?tmp,?in.length?-?byteLen,?byteLen);
      ????????return?tmp;
      ????}
      ?
      ????/*private?static?void?print(int[]?arr)
      ????{
      ????????for?(int?i?=?0;?i?

      以上就是小編今天的分享了,希望可以幫助到大家。

      文檔

      java sm3加密

      java sm3加密是一種加密算法。Sm3算法是我國自己設計的哈希算法,作用主要是數字簽名及驗證、消息認證、隨機數產生等。Sm3算法的運行過程如下:1、使填充后的數據長度是512的整數倍。2、把填充后的信息按照512比特進行分組。3、迭代壓縮得到最后的哈希值。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      文章千古事得失寸心知是誰的名句 誠信的名言名句 關于讀書的名言名句 生日的經典名句 感恩老師的名言名句 關于時間的名言名句 活著的經典名句 java snappy 杜甫的名句 java snapshot 孟浩然的名句 關于誠信的名言名句 杜甫的名言名句 杜甫的名句有哪些 杜甫的千古名句 范仲淹的名句 范仲淹的十大經典名句 緬懷先烈的名言名句 堅持的名言名句 屈原的名言名句 java sizeof java simpledateformat java simhash java shuffle java sha256加密 java portal java pojo java plugin java sftp java plug-in java settimeout java platform java setlayout java serialversionuid java serializable接口 java serializable java sequence java separator java semaphore java selenium
      Top 少妇高潮太爽了在线视频