加解密和编码的特点区别
一、简介
在渗透测试中,常见的密码等敏感信息会采用加密处理,其中作为安全测试人员必须要了解常见的加密方式,才能为后续的安全测试做好准备。
二、加密和编码的区别
1、加密
1.1、目的:
加密的目的是为了对数据进行转换,使其不被他人知道。
1.2、作用:
维护数据机密性,即确保数据不会被预期收件人以外的任何人使用。就是把明文变成不可读的密文。
1.3、常见加密算法
对称加密:
是加密和解密使用相同密钥的加密算法,加密解密的速度快,一般用于数据的加密。
特点:
DES:类似base64,有时‘+’会出现字符串里
AES:类似base64,有时‘/’会出现字符串里,是一种安全的加密方式,涉及到密码,偏移量,数据块,填充,在加密时涉及到4种随机性。解密难度大。如果用 base64 解密出来是乱码,有很大可能是AES加密,因为AES输出时还会选择编码。
非对称加密:
是加密和解密使用不同密钥的加密算法,也称为公私钥加密。交换数据时,一方用公钥加密,另一方用私钥解密,公钥是可以公开的,用户只要保管好自己的私钥即可。非对称加密加解密速度要远低于对称加密,但很难破解,一般用于对密钥的加密。
常见的有:RSA、DSA
Hash算法:
是一种单向算法、不可逆的算法,可以对信息生成一段特定长度的唯一的Hash值。一般用于不可还原的密码存储、信息完整性校验。
特点:
MD5 (不可逆):16位和32位,加密密文字符串由 A-Z ,0-9 随机分配,80%网站管理员或用户密码采取MD5加密
SHA (不可逆):由 A-Z,0-9随机组合,SHA1(密文长度是40位),SHA256,SHA384,SHA512 长度固定。SHA后面跟的数字越大长度越长。
对于加密算法一般采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据。
2、编码
2.1、目的
编码的目的是转换数据,以便不同类型的系统能正确(安全)使用数据。
2.2、作用
维护数据可用性,即确保数据能够被正确使用。就是换一种形式以便于传输。
2.3、常见的编码
URL编码:url地址栏看到以%开始0-9或a-z是两位数的组合的就是URL编码。
URL浏览器只做一次加密,在渗透绕过的时候可能会用二次,三次加密方式
常见的编码字符:
%3d代表=
%0a代表换行
%20代表空格
%22代表"
%23代表#
%25代表%
%00带表空字节
BASE64:由大小写字母和数字组成,密文长度随明文长度依次增加,经常在字符串后会出现 ‘=’ 或者 ‘==’ 。
Unescape:%u+4位数字,对应两位字符,主要应用 web 应用上
三、常见解密方式
1、枚举
列出可能是密码的明文生成的密文,保存成字典。然后用户密文和生成字典里的密文对比,如果一样就给出对应的明文
2、自定义逆向算法
3、可逆向
加密使用了MD5——ASCII——base64
逆向就是反推回去