自动化中MD5和RSA加密解读!

软件还得用芯学 2024-07-31 00:24:39

接口自动化中一般都会遇到密码加密的情况,有时候我们会找开发解决。其实测试工程师也是可以自己解决的,松勤软件测试下面就给大家介绍一下请求中加密的方式和应用。

MD5加密特性与加密处理

对称加密算法: 加密和解密使用同一个密钥-----单密钥加密DES、 AES

不对称加密算法:加密和解密使用不同的钥-----(公钥,私钥)---安全性高 RSA

哈希算法:MD5 SHA256

md5可以把明文加密成密文,但是不可以把密文解密成原来的明文

密码加密后把密文存在数据库中,要判断输入的密码是否正确时,只需要对输入密码经过相同的md5加密,验证两次加密结果是否相同就可以了

如何防止破解

md5不能解密,那么如何破解呢?

其实md5的弊端非常明显,那就是同一个明文每次加密得到的密文都是一样的,例如对123456加密得到的结果是:

e10adc3949ba59abbe56e057f20f883e

那么我们只要跑一次加密就可以知道密文对应的原文是什么了

1、MD5+固定盐值

原理 对原来的明文拼接一个字符串,再进行加密,如果这个字符串不泄露,那么就密文就是安全的;md5加固定盐值是多次加密的原理是一样的,只要固定盐值也泄露了,那么也就意味着被破解了

2、 MD5+随机盐值

如果每个用户加密使用的盐值都是不一样的,那么黑客就无法一下子破解全部的密码,每破解一个用户的密码,都需要按盐值暴力跑加密,直到密码被找到,这大大提高的破解的时间

这样,某个用户的盐值泄露了,不会影响其它用户,即使所有用户的盐值都泄露了,黑客也需要非常长的时间才可以全部破解

RSA数据加密与验签流程

1、RSA简介

RSA加密是一种非对称加密算法,用于在不直接传递密钥的情况下完成解密,确保信息的安全性,避免直接传递密钥可能导致的破解风险。

RSA加密使用一对密钥进行加解密,分别称为公钥和私钥,两者之间存在数学相关性。该加密算法的原理基于对极大整数进行因式分解的困难性来保证安全性。通常情况下,个人保存私钥,而公钥是公开的,可能同时由多人持有。

2、RSA加密和签名的区别

加密和签名都是为了保证安全性,但有略微不同。经常有人混淆加密和签名所使用的是私钥还是公钥,实际上这是对加密和签名的作用有所混淆。简单来说,加密是为了防止信息被泄露,而签名是为了防止信息被篡改。

3、RSA的加密过程如下:

甲生成一对密钥(公钥和私钥),私钥不公开,由甲自己保留。公钥是公开的,任何人都可以获取。

甲使用自己的私钥对消息进行签名,生成签名,并将带有签名的消息和消息本身一起传递给乙。

乙收到消息后,使用甲的公钥进行验签。如果验签结果与消息本身一致,就证明消息是甲发送的。

在这个过程中,只有两次传递过程。第一次是甲将带有签名的消息和消息本身传递给乙,第二次是乙获取甲的公钥。

即使这两次传递都被敌方截获,也没有危险性,因为只有甲的私钥才能对消息进行签名,即使知道了消息内容,也无法伪造带有签名的回复给乙,从而防止了消息内容的篡改。

在实际应用中,通常会同时使用加密和签名。例如,甲和乙都拥有一套自己的公钥和私钥。当甲要给乙发送消息时,先使用乙的公钥对消息进行加密,然后使用甲的私钥对加密的消息进行签名,从而既防止了消息内容的泄露,又防止了消息内容的篡改,更加保证了信息的安全性。

结论:甲和乙各自拥有一套公私钥,公钥用于加密,私钥用于解密,私钥用于签名,公钥用于验签。

大家读完了这篇文章是不是已经对“自动化中MD5和RSA加密”有了一个比较深入的了解了,如果还有疑问,可以评论区提出来哦!

0 阅读:1