sm2 加解密 python(gmssl) + vue(sm-crypto)
时间:2022-11-27 12:00:00
sm2 python(gmssl) vue(sm-crypto) 互相加解密
vue
# npm install --save sm-crypto import {
sm2} from 'sm-crypto' const cipherMode = 1 const private_key = '68A52C8BF528C5DA6E813987695FE52002D5DEF0764A6390A5822E9DE47313C5' const public_key = '04' '8D862F41871F71DDB0122712C2B1CB62297248E76E857B53859AD5DA13B0386E6A051A8BB89F7F19991512F0E719BE595654FFCCAA91887C335481DC8C9B83A3' let en_data = sm2.doEncrypt('123', public_key, cipherMode) console.log(en_data) let de_data = sm2.doDecrypt('6e10e194a2373d7d30a8f79d944fef516f2644076f7889560c5849c57b7c18f624a2e2d6c088459396aa9dbba71dd4fe242faa6a94cfb9b62ecbac537e894c3df67b62931ad511b050043e897719e332f708c24b9e137d3a87aebffc6ba4430e300d9a', private_key, cipherMode); console.log(de_data)
python
from gmssl import sm2 private_key = '68A52C8BF528C5DA6E813987695FE52002D5DEF0764A6390A5822E9DE47313C5' public_key = '8D862F41871F71DDB0122712C2B1CB62297248E76E857B53859AD5DA13B0386E6A051A8BB89F7F19991512F0E719BE595654FFCCAA91887C335481DC8C9B83A3' sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key=private_key) UTF8 = 'utf8' def encrypt(data: str) -> str: # sm2 加密 return sm2_crypt.encrypt(data.encode(UTF8)).hex() def decrypt(data: str) -> str:
return sm2_crypt.decrypt(bytes.fromhex(data)).decode(UTF8)