<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 国产精品久久久久久麻豆一区| 在线精品免费视频| 亚洲第一永久AV网站久久精品男人的天堂AV| 久久精品视频免费播放| 国产精品视频李雅| 精品无码av一区二区三区| 精品乱子伦一区二区三区高清免费播放| 国产精品一级香蕉一区| 在线亚洲精品福利网址导航| 日韩精品一区二区三区中文3d| 精品性影院一区二区三区内射| 中文精品字幕电影在线播放视频| 国产精品夜夜春夜夜爽久久小| 无码日韩精品一区二区免费暖暖 | 一本大道无码日韩精品影视| 久久精品国产日本波多野结衣| 自拍中文精品无码| 国产三级国产精品| 国产精品视频永久免费播放| 91精品国产亚洲爽啪在线观看| 中文字幕精品亚洲无线码二区 | 91国语精品自产拍在线观看一| 国产呦小j女精品视频| 国产精品va在线观看手机版| 3D动漫精品一区二区三区| 国产99视频精品免视看7| 久久精品国产只有精品66| 国产精品综合久久第一页| 自拍偷自拍亚洲精品偷一| 91精品最新国内在线播放| 大桥未久在线精品视频在线| 久久国产精品成人无码网站| 国产国产成人精品久久| 亚洲国产精品久久久久婷婷软件| 国产网红无码精品视频| 精品极品三级久久久久| 99久久国产热无码精品免费| 91精品视频观看| 精品国产乱码久久久久久呢| 99热这里只/这里有精品| 久久无码专区国产精品s|