算法逆向&散列对称非对称&JS源码逆向&AES&DES&RSA&SHA

文章介绍了加密算法的种类,包括单向散列加密如MD5的优缺点和加盐值增强安全的方法,对称加密如AES的快速加密特性和密钥管理,以及非对称加密RSA的安全性与速度权衡。同时,提到了BASE64编码的特点,并举例说明了MD5和密码哈希在PHP中的应用。
摘要由CSDN通过智能技术生成

写在开始:
密文—有源码直接看源码分析加密算法(如果是在后端加密必须有源码才能测地知道)
密文—没有源码的话,1. 靠经验去猜根据密文特征去识别;2. 看前端JS(是否成功取决于加密逻辑是不是在前端)

一、算法加密-概念&分类&类型

  1. 单向散列加密–MD5
  • 优点:方便存储,损耗低:加密/解密对于性能的损耗微乎其微(因为没有密钥等附加条件)
  • 缺点:
    • 存在被暴力破解的可能性,最好通过加盐值(MD5(MD5+salt))的方式提高安全性;
    • 可能存在散列冲突
  • 常见的单向散列加密算法有:MD5、SHA、MAC、CRC
  • 密文特点
    • 由数字"0-9"和字母"a-f"所组成的字符串
    • 固定位数16位或32位
  • 解密要求:
    • 知道密文即可
    • 但是复杂明文可能破解不出来
    • 使用的是碰撞解密
  1. 对称加密–AES
  • 优点:算法公开,计算量小,加密速度快、加密效率高
  • 缺点:发送方和接收方必须商定好密钥,然后使双发都能保存好密钥,密钥管理称为双方的负担
  • 常见的对称加密算法有:DES、AES、RC4
  • AES BES密文特点
    • 同BASE64基本雷士,但一般会出现"/“和”+"在密文中
  • 解密需求:密文、模式、加密key(密钥),偏移量(ECB模式没有偏移量),只有条件满足才可解出
  • 使用的是算法逆向
  1. 非对称加密–RSA
  • 优点:与对称加密相比,安全性更好,加解密需要不同的密钥,公钥和私钥都可进行相互的加解密
  • 缺点:加密和解密花费时间长,速度慢,只适合对少量数据进行加密。
  • 常见非对称加密算法:RSA、RSA2、PKCS
  • 密文特点
    • 特征:同AES,DES相似,但是长度较长;且同样明文多次加密的密文不一致,但长度会限制在一定范围内
  • 解密需求:密文,公钥或私钥其中一个即可解出
  1. BASE64编码特点:
  • 大小写区分,通过数字和字母的组合
  • 一般情况下密文尾部会出现两个等号,明文长度小的时候则没有
  • 明文越长密文越长,一般不会出现"/“和”+"在密文中

二、加密解密-识别特征&解密条件在这里插入图片描述

  1. MD5加密
    使用**.md5**函数
    在这里插入图片描述
  2. BASE64编码
    使用**.base64_encode**函数
    在这里插入图片描述
  3. AES
  • KEY:传参过去的1234567891234567(加解密最关键的信息)
  • Cipher mode(加密模式):AES-128-ECB,就是ECB模式,ECB模式是没有偏移量(iv)的
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  1. DES(加密模式为CBC模式与ECB模式)
  • key : key123456
  • iv :iv123456
  • 加密模式:CBC、ECB
    在这里插入图片描述
    在这里插入图片描述
  1. RSA
  • 如果使用公钥加密,则需要使用私钥解密;如果使用私钥加密,则使用公钥解密
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

三、解密实例-密文存储&数据传输

  1. 单向散列(后端处理)
  • MD5
    X3.2 —>MD5&salt
    加密代码:
    DZ对应代码段-/uc_server/model/user.php
	function add_user() {
		$password = md5(md5($password).$salt);
    }

解密脚本–>单向散列只能通过字典碰撞的方式去碰运气破解密码

<?PHP
$h = 'd7192407bb4bfc83d28f374b6812fbcd';
$hash=md5(md5('123456').'3946d5');
if($h==$hash){
	echo 'ok';
}else{
	echo 'no';
}
?>
  • PHP自带:password_hash() 函数用于创建密码的散列(hash)
    X3.5-hash
    DZ对应代码段-/uc_server/model/user.php
function add_user() {
		$salt = '';
		$password = $this->generate_password($password);
    }

	function generate_password($password) {
		$algo = $this->get_passwordalgo();
		$options = $this->get_passwordoptions();
		$hash = password_hash ($password, $algo, $options);
	}

解密脚本:通过password_verify函数去碰撞密文

<?PHP
$hash = '$2y$10$KA.7VYVheqod8F3X65tWjO3ZXfozNA2fC4oIZoDSu/TbfgKmiw7xO';
if (password_verify('123456', $hash)) {
    echo 'ok';
} else {
    echo 'error';
}
?>
  1. 单向散列(前端JS加密)
  • ZBLOG
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值