# 完整密文打印的SM2测试
from gmssl import sm2
import binascii
import base64

# 测试密钥对
private_key = "3945208F7B2144B13F36E38AC6D39F95889393692860B51A42FB81EF4DF7C5B8"
public_key = "09F9DF311E5421A150DD7D161E4BC5C672179FAD1833FC076BB08FF356F35020" \
             "CCEA490CE26775A52DC6EA718CC1AA600AED05FBF35E084A6632F6072DA9AD13"

# 创建SM2对象
sm2_crypt = sm2.CryptSM2(public_key=public_key, private_key=private_key)

# 测试明文
data = "Hello SM2加密测试"
print("=" * 70)
print("SM2加密解密测试 - 完整密文输出")
print("=" * 70)
print(f"原始明文: {data}")
print(f"明文长度: {len(data)} 字符")
print(f"明文字节: {len(data.encode('utf-8'))} 字节")

# 加密
plaintext_bytes = data.encode('utf-8')
encrypted = sm2_crypt.encrypt(plaintext_bytes)

# 显示加密结果
print(f"\n[加密结果]")
print(f"密文长度: {len(encrypted)} 字节")

# 1. 16进制格式 - 完整输出
encrypted_hex = binascii.hexlify(encrypted).decode('utf-8')
print(f"\n密文(16进制,完整):")
print("-" * 60)
print(encrypted_hex)
print(f"16进制总长度: {len(encrypted_hex)} 字符")

# 解密验证
print(f"\n[解密验证]")
print("-" * 60)
decrypted = sm2_crypt.decrypt(encrypted)
decrypted_text = decrypted.decode('utf-8')

print(f"解密结果: {decrypted_text}")
print(f"验证状态: {'✓ 加解密成功' if data == decrypted_text else '✗ 加解密失败'}")

 

posted on 2026-01-23 13:43  轩~邈  阅读(3)  评论(0)    收藏  举报