from gmssl import sm4
import base64
from gmssl.sm4 import CryptSM4, SM4_ENCRYPT, SM4_DECRYPT
import csv
file = ‘nmggz.txt’
with open(‘nmggz.txt’, ‘r’, encoding=‘utf-8’) as f:
file_data = f.read()
print(‘加密前的数据 :\n’, file_data)
#设置key以及偏移量
key = b’Z7PqwAtdzqhQhD30’
iv = b’7cl@h40ngPDXNO6J’
sm4加密
crypt_sm4 = sm4.CryptSM4()
设置KEY
crypt_sm4.set_key(key, SM4_ENCRYPT)
加密数据
encrypt_value = crypt_sm4.crypt_cbc(iv, file_data.encode(‘utf-8’))
print(‘加密后的数据:\n’, encrypt_value)
base64转码
b64text = base64.b64encode(encrypt_value)
print(‘64转码后的数据\n’, b64text)
base64解码
z64text = base64.b64decode(b64text)
print(‘64解码后的数据\n’, z64text)
sm4 解密
crypt_sm4.set_key(key, SM4_DECRYPT)
decrpt_value = crypt_sm4.crypt_cbc(iv, z64text)
print(‘解密后的数据\n’, decrpt_value)
print(‘解密后的数据\n’, decrpt_value.decode(‘utf-8’))
with open(‘NSYH_GZZH03_20231207001.csv’, ‘wb’) as file:
file.write(b64text)
file.close()