<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></ul>
  • 更多精彩內(nèi)容,歡迎關(guān)注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    當(dāng)前位置:首頁 科技百科 java sm3加密

    java sm3加密

    文檔

    java sm3加密

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

    ? ?

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

    java sm3加密是一種加密算法。Sm3算法是我國自己設(shè)計(jì)的哈希算法,在商用密碼體系當(dāng)中,sm3算法的作用主要是數(shù)字簽名及驗(yàn)證、消息認(rèn)證、隨機(jī)數(shù)產(chǎn)生等。Sm3算法是公開的,進(jìn)行加密會(huì)產(chǎn)生一個(gè)32字節(jié)的值。

    Sm3算法的運(yùn)行過程如下:

    1.填充:使填充后的數(shù)據(jù)的長度是512的整數(shù)倍

    2.進(jìn)行分組:把填充后的信息按照512比特一個(gè)分組進(jìn)行分組。

    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);
    ????????}
    ????}
    ?
    ????//?邏輯位運(yùn)算函數(shù)
    ????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;
    ????}
    ?
    ????/**
    ?????*?對最后一個(gè)分組字節(jié)數(shù)據(jù)padding
    ?????*
    ?????*?@param?in
    ?????*?@param?bLen
    ?????*????????????分組個(gè)數(shù)
    ?????*?@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算法是我國自己設(shè)計(jì)的哈希算法,作用主要是數(shù)字簽名及驗(yàn)證、消息認(rèn)證、隨機(jī)數(shù)產(chǎn)生等。Sm3算法的運(yùn)行過程如下:1、使填充后的數(shù)據(jù)長度是512的整數(shù)倍。2、把填充后的信息按照512比特進(jìn)行分組。3、迭代壓縮得到最后的哈希值。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關(guān)推薦
    文章千古事得失寸心知是誰的名句 誠信的名言名句 關(guān)于讀書的名言名句 生日的經(jīng)典名句 感恩老師的名言名句 關(guān)于時(shí)間的名言名句 活著的經(jīng)典名句 java snappy 杜甫的名句 java snapshot 孟浩然的名句 關(guān)于誠信的名言名句 杜甫的名言名句 杜甫的名句有哪些 杜甫的千古名句 范仲淹的名句 范仲淹的十大經(jīng)典名句 緬懷先烈的名言名句 堅(jiān)持的名言名句 屈原的名言名句 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 精品国产午夜福利在线观看| 国内少妇人妻偷人精品xxx| 久久精品亚洲视频| 亚洲AV永久无码精品一区二区国产| 亚洲国产成人精品无码区在线秒播| 人与狗精品AA毛片| 国产精品亚洲一区二区三区久久| 久久久精品国产免大香伊 | 久9re热视频这里只有精品| 国产精品日本一区二区不卡视频| 亚洲精品色婷婷在线影院| 最新亚洲精品国偷自产在线| 久久久久亚洲精品无码蜜桃| 中文字幕精品亚洲无线码一区 | 久久精品无码专区免费| 国产成人久久精品麻豆二区| 在线精品亚洲一区二区| 2021国产精品久久久久| 久热青青青在线视频精品| 岛国精品一区免费视频在线观看| 成人国产精品999视频| 国内精品久久久久影视| 亚洲av日韩精品久久久久久a| 亚洲国产综合精品| 91精品视频在线免费观看| 久久精品国产亚洲av麻豆| 在线观看亚洲精品福利片| 国产精品人人做人人爽| 国产成人1024精品免费| 一本大道无码日韩精品影视| 国产真实乱子伦精品视频| 国产精品电影网在线好看| 69精品人人人人人人人人人| 欧美黑人欧美精品刺激| 亚洲国产精品无码中文lv| 中文字幕精品一区二区| 亚洲国产欧美日韩精品一区二区三区 | 国产精品酒店视频| 国产精品亚洲天堂| 国产伦精品一区二区三区在线观看| 四虎影视成人精品|