亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術(shù)文章
文章詳情頁

python實(shí)現(xiàn)sm2和sm4國(guó)密(國(guó)家商用密碼)算法的示例

瀏覽:3日期:2022-07-09 18:42:12

GMSSL模塊介紹

GmSSL是一個(gè)開源的加密包的python實(shí)現(xiàn),支持SM2/SM3/SM4等國(guó)密(國(guó)家商用密碼)算法、項(xiàng)目采用對(duì)商業(yè)應(yīng)用友好的類BSD開源許可證,開源且可以用于閉源的商業(yè)應(yīng)用。

安裝模塊

pip install gmssl

https://github.com/duanhongyi/gmssl/blob/master/README.md官方文檔

SM2算法

RSA算法的危機(jī)在于其存在亞指數(shù)算法,對(duì)ECC算法而言一般沒有亞指數(shù)攻擊算法 SM2橢圓曲線公鑰密碼算法:我國(guó)自主知識(shí)產(chǎn)權(quán)的商用密碼算法,是ECC(Elliptic Curve Cryptosystem)算法的一種,基于橢圓曲線離散對(duì)數(shù)問題,計(jì)算復(fù)雜度是指數(shù)級(jí),求解難度較大,同等安全程度要求下,橢圓曲線密碼較其他公鑰算法所需密鑰長(zhǎng)度小很多。

gmssl是包含國(guó)密SM2算法的Python實(shí)現(xiàn), 提供了 encrypt、 decrypt等函數(shù)用于加密解密, 用法如下:

1. 初始化CryptSM2

import base64import binasciifrom gmssl import sm2, func#16進(jìn)制的公鑰和私鑰private_key = ’00B9AB0B828FF68872F21A837FC303668428DEA11DCD1B24429D0C99E24EED83D5’public_key = ’B9C9A6E04E9C91F7BA880429273747D7EF5DDEB0BB2FF6317EB00BEF331A83081A6994B8993F3F5D6EADDDB81872266C87C018FB4162F5AF347B483E24620207’sm2_crypt = sm2.CryptSM2( public_key=public_key, private_key=private_key)

2. encrypt和decrypt

#數(shù)據(jù)和加密后數(shù)據(jù)為bytes類型data = b'111'enc_data = sm2_crypt.encrypt(data)dec_data =sm2_crypt.decrypt(enc_data)assert dec_data == data

3. sign和verify

data = b'111' # bytes類型random_hex_str = func.random_hex(sm2_crypt.para_len)sign = sm2_crypt.sign(data, random_hex_str) # 16進(jìn)制assert sm2_crypt.verify(sign, data) # 16進(jìn)制

SM4算法

國(guó)密SM4(無線局域網(wǎng)SMS4)算法, 一個(gè)分組算法, 分組長(zhǎng)度為128bit, 密鑰長(zhǎng)度為128bit, 算法具體內(nèi)容參照SM4算法。

gmssl是包含國(guó)密SM4算法的Python實(shí)現(xiàn), 提供了 encrypt_ecb、 decrypt_ecb、 encrypt_cbc、 decrypt_cbc等函數(shù)用于加密解密, 用法如下:

1. 初始化CryptSM4

from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPTkey = b’3l5butlj26hvv313’value = b’111’ # bytes類型iv = b’x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00x00’ # bytes類型crypt_sm4 = CryptSM4()

2. encrypt_ecb和decrypt_ecb

crypt_sm4.set_key(key, SM4_ENCRYPT)encrypt_value = crypt_sm4.crypt_ecb(value) # bytes類型crypt_sm4.set_key(key, SM4_DECRYPT)decrypt_value = crypt_sm4.crypt_ecb(encrypt_value) # bytes類型assert value == decrypt_value

3. encrypt_cbc和decrypt_cbc

crypt_sm4.set_key(key, SM4_ENCRYPT)encrypt_value = crypt_sm4.crypt_cbc(iv , value) # bytes類型crypt_sm4.set_key(key, SM4_DECRYPT)decrypt_value = crypt_sm4.crypt_cbc(iv , encrypt_value) # bytes類型assert value == decrypt_value

以上就是python實(shí)現(xiàn)sm2和sm4國(guó)密(國(guó)家商用密碼)算法的示例的詳細(xì)內(nèi)容,更多關(guān)于python 實(shí)現(xiàn)國(guó)家商用密碼算法的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 日韩在线高清 | 国产jav| a级黄色片免费看 | aa级毛片 | 一区二区三区视频免费观看 | 91精品啪在线看国产网站 | 日本一区二区不卡视频 | 成人另类视频 | 国产极品在线观看视频 | 国产午夜视频在线观看第四页 | 久久国产精品自线拍免费 | 精品一区二区三区的国产在线观看 | 黄在线视频播放免费网站 | 欧美α一级毛片 | 草逼网站 | 免费观看成人羞羞视频网站观看 | 美女视频黄a视频免费全过程 | 欧美唯爱网 全黄性播放 | 曰韩毛片 | 国产黄色a级| 免费羞羞视频网站 | xxx.国产 | 日韩一级精品视频在线观看 | 久久青草免费免费91线频观看 | 日本免费va毛片在线看大 | 日韩视频免费看 | 国产精品视频九九九 | 小蝌蚪在线成人免费视频 | 一级毛片免费全部播放完整 | 91免费永久国产在线观看 | 亚洲欧美在线中文字幕不卡 | 日韩永久免费视频 | 牛牛a级毛片在线播放 | 黄色一级毛片免费看 | 国产一区二区高清在线 | 亚洲乱码视频在线观看 | 最近中文日本字幕免费完整 | 中文字幕亚洲一区二区va在线 | 国产婷婷丁香久久综合 | 色盈盈影院 | 黄色特级一级片 |