国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

python實現sm2和sm4國密(國家商用密碼)算法的示例

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

GMSSL模塊介紹

GmSSL是一個開源的加密包的python實現,支持SM2/SM3/SM4等國密(國家商用密碼)算法、項目采用對商業應用友好的類BSD開源許可證,開源且可以用于閉源的商業應用。

安裝模塊

pip install gmssl

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

SM2算法

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

gmssl是包含國密SM2算法的Python實現, 提供了 encrypt、 decrypt等函數用于加密解密, 用法如下:

1. 初始化CryptSM2

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

2. encrypt和decrypt

#數據和加密后數據為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進制assert sm2_crypt.verify(sign, data) # 16進制

SM4算法

國密SM4(無線局域網SMS4)算法, 一個分組算法, 分組長度為128bit, 密鑰長度為128bit, 算法具體內容參照SM4算法。

gmssl是包含國密SM4算法的Python實現, 提供了 encrypt_ecb、 decrypt_ecb、 encrypt_cbc、 decrypt_cbc等函數用于加密解密, 用法如下:

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實現sm2和sm4國密(國家商用密碼)算法的示例的詳細內容,更多關于python 實現國家商用密碼算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 精品视频一区二区三区在线观看 | 91精品免费久久久久久久久 | 成人免费xxx色视频 成人免费大片a毛片 | 亚洲深夜福利视频 | 泰国一级毛片aaa下面毛多 | 欧美午夜精品久久久久久黑人 | 国产成人精品久久综合 | 特黄aa级毛片免费视频播放 | 国产夫妇精品自在线 | 国产精品18久久久久久久久久 | 国产免费一区二区三区 | 亚洲国产美女视频 | 久久国产影视免费精品 | aaaaaa精品视频在线观看 | 国产精品久久国产精品99盘 | 国产精品9999久久久久 | 91在线一区二区三区 | 99久久久久国产 | 精品午夜一区二区三区在线观看 | 国产成人aa在线观看视频 | 国产黄色自拍视频 | 亚洲精品三级 | 一级特一级特色生活片 | 亚洲国产精久久久久久久春色 | 亚洲精品一级片 | 亚洲视频欧美 | 青青青免费手机版视频在线观看 | 久久99国产精一区二区三区! | 国产精品久久久久久久久福利 | 三级网站 | 99re久久精品国产首页2020 | 最新福利片v国产片 | 欧美成人se01短视频在线看 | 欧美激情第一欧美在线 | 亚洲国产成人精品91久久久 | 亚洲综合一区二区三区 | 福利91| 在线午夜影院 | 越南高清幻女bbwxxxx | 国产91一区二区在线播放不卡 | a毛片免费全部在线播放毛 a毛片免费视频 |