《加密与解密》笔记六(一)
来源:互联网 发布:catia软件销售怎么样 编辑:程序博客网 时间:2024/05/16 10:41
加密算法:
我们的加密算法主要分为:
1:单向散列算法;
2:对称加密算法;
3:公开密钥加密算法;
4:一些其他的算法;
这次我主要记录的就是单向散列加密算法
单向散列算法简单说就是将任意长度的消息固定转换为某一固定长度的摘要,以此来进行一些验证(在很多的游戏等程序的完整性检测就是主要检查每个程序的信息摘要是否符合原来的文件的摘要,之所以称之为单向是因为这个转换是不可逆的,所以我们就算知道了一个重要文件的摘要也几乎不能对其做什么(除了暴力枚举,当然,这个一般是不可能做到的)
1:MD5
1:原理:
1:
填充到与512的倍数小64位的一个长度,并且最少填充1位最大填充512位,然后对这个数据进行增长,增长64位,如果之前已经是大于64位的了,那么就取原来的数据的低64位为后面的就可以,这样一来所得的到的数据就是512的整数倍了。
2:
初始化数据(这个数据表非常有用(用于初步估计一个程序是否使用了MD5的非常基本的一个方法))
分为4组数据:
A:01234567
B:89ABCDEF
C:FEDCBA98
D:76543210
3:
数据处理:这里描述繁杂,直接上图吧。
2:
应用。
1:
这个应用就是涉及到之前我提及的验证文件等信息的正确性,但是有一点:
这个样子的验证,我们只需要直接把验证NOP了或者修改验证对比就可以了,MD5的用武之地就没了,不是很好。
2:
破解的话就先寻找之前提到的4个常数就好,一般都是OK的,当然,还是要进一步确认的。
2:SHA算法:
函数序列:
初始化数据:
SHA-1:
SHA-256:
SHA-384:
SHA-512:
这里鉴别的方法其实和MD5类似的,如果查内存发现了上面的值的话我们就可以咱叔估测这个程序内可能还有SHA算法那么再经过后面的逆向定位以后就可以写出这个程序的注册机出来。
- 《加密与解密》笔记六(一)
- 《加密与解密》笔记(一)
- 《加密与解密》笔记三(一)
- 《加密与解密》笔记四(一)
- 《加密与解密》笔记五(一)
- 《加密与解密》笔记一
- 加密与解密笔记
- java加密与解密(一)
- 《加密与解密》笔记(二)
- 《加密与解密》笔记(三)
- 《加密与解密》笔记三(二)
- 《加密与解密》笔记四(二)
- 《加密与解密》笔记四(三)
- 《加密与解密》笔记四(四)
- 《加密与解密》笔记五(二)
- 《加密与解密》学习笔记(一) - 基础知识和常用保护方案和破解方案
- 《加密与解密》笔记二
- 数据安全--加密与解密(一)
- 动态获取下拉框的值与ajax中对方法的隐藏与显示
- 定义asyncExportFile服务,通过异步下载导出文件
- 终极方案:SwipeRefreshLayout刷新控件与webview控件冲突
- 线性与二次判别分析
- axis1.4
- 《加密与解密》笔记六(一)
- 解决 Android 应用方法数不能超过 65535 的问题
- Java web tomcat插件安装、部署配置
- 【JavaScript基本数据类型】
- Android Snackbar简单解析
- Java定时任务调度之Timer
- SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-J-膜一下将带给你好运
- Linux SSH免密码登陆
- lua 人机交互(三)