html tool

2022年10月13日星期四

openssl的sha1密钥 bash实现

 

来源:

https://blog.csdn.net/armlinuxww/article/details/115479401

https://www.qetool.com/scripts/view/22012.html

目标:

python如下代码的bash实现

# 通过hmac计算sha1,然后base64编码即可
signature = base64.encodestring(hmac.new(client_secret, string2Sign, hashlib.sha1).digest()).replace("\n", "")

bash实现
echo "${client_secret}"|openssl sha1 -binary -hmac ${string2Sign}|base64

其中 openssl sha1 -binary -hmac ${string2Sign}
sha1为信息完整性摘要的一种
# echo "add"|openssl dgst -sha1  -binary -hmac "aaa"|base64
6UbANJJ0F5LLE7tPy/zcKvRwxic=
# echo "add"|openssl sha1  -binary -hmac "aaa"|base64
6UbANJJ0F5LLE7tPy/zcKvRwxic=


[参考:
OpenSSL实现了5种信息摘要算法,分别是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD

。SHA算法事实上包括了SHA和SHA1两种信息摘要算法,此外,OpenSSL还实现了DSS标准中规定的两种信息摘要算法DSS和DSS1。

摘要一般有两个作用:1)做信息完整性校验;2)保存密码,有些密码是直接在数据库中采用MD5(真实密码值)保存的,有的还进行加盐处理,使其难以破解,这样密码只能重置,无法告诉你原始过程,因为摘要是不可逆的。

 

  1. openssl dgst
  2. 常用选项有:
  3. [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1] :指定一种摘要算法
  4. -out filename:将摘要的内容保存到指定文件中
  5. dgst命令:
  6. 帮助: man dgst
  7. openssl dgst -md5 [-hex默认16进制] /PATH/SOMEFILE
  8. openssl dgst -md5 testfile
  9. md5sum /PATH/TO/SOMEFILE
  10. MAC: Message Authentication Code,单向加密的一种延伸应用,用于实现网络通
  11. 信中保证所传输数据的完整性机制
  12. CBC-MAC
  13. HMAC:使用md5或sha1算法

简单示例,对文件1进行求md5摘要:

]


没有评论:

发表评论