openssl 命令行 sm4 加解密

本文提供了一个关于SMS4算法的标准实例,包括密钥、明文、密文的具体内容及使用gmssl工具进行加密和解密的过程。通过实例展示如何利用命令行工具实现SMS4算法的ECB模式无填充加密与解密。

sms4 算法标准数据实例

密钥:0123456789abcdeffedcba9876543210

明文:0123456789abcdeffedcba9876543210

密文:681edf34d206965e86b3e94f536e4246

gmssl 命令:

mssl sms4-ecb -e -nopad -in plain.dat -K 0123456789abcdeffedcba9876543210 -out cipher.dat

gmssl sms4-ecb -d -nopad -in cipher.dat -K 0123456789abcdeffedcba9876543210 -out msg.dat

实例:

查看明文数据、对称加密、查看密文数据、对称解密、查看已解密数据

hexdump -C plain.dat

gmssl sms4-ecb -e -nopad -in plain.dat -K 0123456789abcdeffedcba9876543210 -out cipher.dat

hexdump -C cipher.dat 

gmssl sms4-ecb -d -nopad -in cipher.dat -K 0123456789abcdeffedcba9876543210 -out msg.dat

hexdump -C msg.dat

 

 

### 使用 OpenSSL 命令行工具对学号进行加密的示例 OpenSSL 是一个功能强大的工具,可以用于加密、解密以及生成各种类型的密钥和证书。以下是一个具体的示例,展示如何使用 OpenSSL 对学号进行加密和解密。 #### 1. 加密操作 假设学号为 `20211217`,可以使用以下命令对其进行加密: ```bash echo -n "20211217" | openssl enc -e -aes-256-cbc -a -salt -pass pass:yourpassword > encrypted.txt ``` - `-e`: 表示加密操作。 - `-aes-256-cbc`: 指定加密算法为 AES-256-CBC[^2]。 - `-a`: 将输出编码为 Base64 格式。 - `-salt`: 添加随机盐值以增强安全性。 - `-pass pass:yourpassword`: 指定密码为 `yourpassword`。 加密后的结果会保存到 `encrypted.txt` 文件中。 #### 2. 解密操作 要解密文件中的内容,可以使用以下命令: ```bash openssl enc -d -aes-256-cbc -a -salt -in encrypted.txt -out decrypted.txt -pass pass:yourpassword ``` - `-d`: 表示解密操作。 - 其他参数与加密时相同。 解密后的内容会保存到 `decrypted.txt` 文件中。 #### 3. 验证加密和解密 可以通过查看 `decrypted.txt` 文件来验证解密是否成功: ```bash cat decrypted.txt ``` 如果输出为 `20211217`,则说明加密和解密过程正确[^2]。 --- ### 使用 HMAC-SM3 进行消息认证 除了加密外,还可以使用 HMAC-SM3 对消息进行完整性验证。以下是具体步骤: 1. **生成随机密钥**: ```bash openssl rand -hex 32 > key.txt ``` 此命令生成一个 32 字节的随机密钥并保存到 `key.txt` 文件中[^3]。 2. **计算 HMAC-SM3 值**: ```bash key=$(cat key.txt) echo -n "20211217" | openssl dgst -hmac $key -sm3 > hmac_result.txt ``` 此命令使用生成的密钥对学号 `20211217` 计算 HMAC-SM3 值,并将结果保存到 `hmac_result.txt` 文件中[^3]。 3. **验证 HMAC-SM3 值**: 如果需要验证消息的完整性,可以重新计算 HMAC 并比较结果。 --- ### 自签名证书与证书链验证 如果需要进一步了解如何验证证书链,可以参考以下命令: ```bash openssl s_client -connect example.com:443 -showcerts > server_cert.pem ``` 此命令连接到服务器并导出其证书链到 `server_cert.pem` 文件中[^1]。 然后可以使用以下命令验证证书链: ```bash openssl verify -CAfile ca_cert.pem server_cert.pem ``` 其中,`ca_cert.pem` 是 CA 的根证书文件。 --- ###
评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值