北京高端网站建设入门,廊坊网络,网站搜索引擎优化公司,dede无法一键更新网站数据安全法及密评要求#xff0c;敏感数据系统需要使用国密算法进行加解密处理。
敏感数使用SM4/ECB加解密方式
#密钥参数epidemic_key #加密信息参数 message #加密算法SM4/ECB/PKCS5Padding #加密类型SM4-ECB #添加模式PKCS5Padding from cryptography.hazmat.primitives.… 数据安全法及密评要求敏感数据系统需要使用国密算法进行加解密处理。
敏感数使用SM4/ECB加解密方式
#密钥参数epidemic_key #加密信息参数 message #加密算法SM4/ECB/PKCS5Padding #加密类型SM4-ECB #添加模式PKCS5Padding from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import binascii
#密钥参数epidemic_key
#加密信息参数 message
#加密算法SM4/ECB/PKCS5Padding
#加密类型SM4-ECB
#添加模式PKCS5Padding
def sm4_encrypt_ecb(data, key):cipher Cipher(algorithms.SM4(binascii.unhexlify(key)), modes.ECB(), backenddefault_backend())encryptor cipher.encryptor()# Use PKCS7 paddingpadded_data data.encode(utf-8) bytes([16 - len(data) % 16] * (16 - len(data) % 16))ciphertext encryptor.update(padded_data) encryptor.finalize()return binascii.hexlify(ciphertext).decode(utf-8)def sm4_decrypt_ecb(ciphertext, key):cipher Cipher(algorithms.SM4(binascii.unhexlify(key)), modes.ECB(), backenddefault_backend())decryptor cipher.decryptor()decrypted_data decryptor.update(binascii.unhexlify(ciphertext)) decryptor.finalize()# Remove PKCS7 paddingreturn decrypted_data.rstrip(b\x00).decode(utf-8)def main():epidemic_key 4d18850d763e8748ff2f8d83530e0123message 123456encrypted_message sm4_encrypt_ecb(message, epidemic_key)print(fOriginal Message: {message})print(fEncrypted Message: {encrypted_message})decrypted_message sm4_decrypt_ecb(encrypted_message, epidemic_key)print(fDecrypted Message: {decrypted_message})if __name__ __main__:main() 账户口令加密采用SM3进行hash from cryptography.hazmat.backends import default_backend
from cryptography.hazmat.primitives import hashes
import hashlib
def sm3_hash(data):digest hashes.Hash(hashes.SM3(), backenddefault_backend())digest.update(data.encode(utf-8))return digest.finalize()
def main1():message 闫三hash_value sm3_hash(message).hex()print(fMessage: {message})print(fSM3 Hash: {hash_value})def md5_hash(data):md5 hashlib.md5()md5.update(data.encode(utf-8))return md5.hexdigest()
def main():message 123456hash_value md5_hash(message)print(fMessage: {message})print(fMD5 Hash: {hash_value})
if __name__ __main__:main1()main()