利用OpenSSL,用国密SM4算法来给文件加密、解密 您所在的位置:网站首页 android文件加密算法 利用OpenSSL,用国密SM4算法来给文件加密、解密

利用OpenSSL,用国密SM4算法来给文件加密、解密

2023-08-10 02:55| 来源: 网络整理| 查看: 265

用OpenSSL产生一个随机填充的文件 a.txt ,然后计算这个文件的SHA256摘要。等一下用OpenSSL加密产生 b.txt 再对 b.txt 解密产生c.txt 。计算 c.txt 的SHA256摘要,应该和 a.txt 的一样。

$ openssl rand -out a.txt 102400 $ sha256sum a.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd a.txt

接着,加密 a.txt ,使用SM4算法,CTR分组模式。加密后输出文件 b.txt 到当前目录下。

$ openssl enc -in a.txt -out b.txt -e -sm4-ctr -pbkdf2 -k 123123

参数 -e 表示,这里要对 -in 指定的文件进行加密处理。 -pbkdf2 是指定使用PBKDF2函数对密码进行处理,密码是参数 -k 指定的 123123 。接着计算一下 b.txt 的SHA256摘要。

$ sha256sum a.txt b.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd a.txt c364d5dc9b1bd78e0538f854c24f0b777ed4d46cd47e0e2d4a5a101163b91220 b.txt

然后是解密,除了输入文件和输出文件需要修改之外,参数 -e 换成 -d 就是解密过程了,其余的参数跟加密的时候一样。

$ openssl enc -in b.txt -out c.txt -d -sm4-ctr -pbkdf2 -k 123123

看下产生的文件的SHA256摘要,可以发现 a.txt 和 c.txt 摘要跟原来的一样。

$ sha256sum a.txt b.txt c.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd a.txt c364d5dc9b1bd78e0538f854c24f0b777ed4d46cd47e0e2d4a5a101163b91220 b.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd c.txt

除了SM4算法,CTR模式,OpenSSL还可以用别的算法和模式对文件进行加密。输入 openssl enc -list 可以查看能使用的算法和模式。例如还可以用 -aes-128-cbc 参数来加密和解密,如下:

$ openssl enc -in a.txt -out d.txt -e -aes-128-cbc -pbkdf2 -k 123123 $ openssl enc -in d.txt -out e.txt -d -aes-128-cbc -pbkdf2 -k 123123 $ sha256sum a.txt b.txt c.txt d.txt e.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd a.txt c364d5dc9b1bd78e0538f854c24f0b777ed4d46cd47e0e2d4a5a101163b91220 b.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd c.txt a959d12133acb54db9cc2825e6fad5de8761e417db05d2bc441c0f8704ff0fe6 d.txt 2aa2b3258c026866bfbd548549594fa47aa274257bb322f4e6411c4b0442d4bd e.txt

批量加密文件的Bash脚本:

#!/bin/bash mkdir -p your_files_new for file in your_files/*.* do FILE_NAME=`echo $file | cut -d '/' -f 2` openssl enc -in "your_files/$FILE_NAME" -out "your_files_new/$FILE_NAME" -e -sm4-ctr -pbkdf2 -k 123123 done


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有