Skip to content

jiangjiali/Pythonista-sm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pythonista-sm

中国国密库SM,支持sm3,sm4

sm3

	y = sm3_hash(bytes_to_list(b"abc"))
	print(y)

sm4

	key = b'KNN36H7F0MZB6RTW'
	iv = b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'  # bytes类型
	crypt_sm4 = Crypt()
	# value = b'Jll9496././'  # bytes类型
	value = bytearray("test明文".encode('utf-8'))
	# 使用 CBC
	crypt_sm4.set_key(key, ENCRYPT)
	encrypt_value = crypt_sm4.crypt_cbc(iv, value)  # bytes类型
	encrypt_value = base64.b64encode(encrypt_value).decode('utf-8', 'ignore')
	print(encrypt_value.upper())  # 把所有小写字母大写

	encrypt_value = base64.b64decode(encrypt_value)
	crypt_sm4.set_key(key, DECRYPT)
	decrypt_value = crypt_sm4.crypt_cbc(iv, encrypt_value)  # bytes类型
	print(decrypt_value.decode('utf-8', 'ignore'))

	# 使用 ECB
	# crypt_sm4.set_key(key, ENCRYPT)
	# encrypt_value = crypt_sm4.crypt_ecb(value)  # bytes类型
	# print(encrypt_value)
	#
	# crypt_sm4.set_key(key, DECRYPT)
	# decrypt_value = crypt_sm4.crypt_ecb(encrypt_value)  # bytes类型
	# print(decrypt_value)


About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages