在Linux上使用GmSSL实践混合加解密(无废话)

在Linux上使用GmSSL实践混合加解密

实验环境:Ubuntu 22.04.3 amd64

下载GmSSL

sudo apt-get update
sudo apt-get install -y cmake make gcc g++
git clone https://github.com/guanzhi/GmSSL.git
cd GmSSL
mkdir build && cd build
cmake ..
make
sudo make install

产生SM2密钥对

cd /GmSSL
mkdir build
cd ./build
gmssl sm2keygen -pass [your password for private key] -out sm2key.pem -pubout sm2pub.pem

在这里插入图片描述


生成16个随机数(十六进制)作为128位SM4对称密钥

gmssl rand -out sm4key.txt -outlen 16 -hex
在这里插入图片描述


使用SM2公钥加密SM4对称密钥

gmssl sm2encrypt -pubkey sm2pub.pem -in sm4key.txt -out sm4key.der
在这里插入图片描述


使用SM4对称密钥加密文件(cbc模式)

gmssl sm4_cbc -encrypt -in test.txt -key [your key] -iv [your iv] -out crytest.bin
在这里插入图片描述
也可以从文件中读取密钥:cat sm4key.txt > Key && gmssl sm4_cbc -encrypt -in test.txt -key $Key -iv [your iv] -out crytest3.bin
此处是将密钥文件中的内容输出作为字符串的值,进而利用字符串进行操作。
在这里插入图片描述


将加密后的对称密钥和加密文件传输给对方

解密对称密钥

gmssl sm2decrpt -key sm2key.pem -pass 123456 -in sm4key.der -out sm4key2.txt
在这里插入图片描述


使用对称密钥解密文件

cat sm4key2.txt > Key && gmssl sm4_cbc -decrypt -in crytest.bin -key $Key -iv [your iv] -out plain.txt
在这里插入图片描述

  • 14
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值