文档章节

RSA,AES,MD5算法在实际项目中的综合应用!!!

Java_Coder
 Java_Coder
发布于 2014/11/11 22:43
字数 1191
阅读 546
收藏 15
  1. 项目背景:

    上一版本的后台框架并没有采用任何的加解密等等策略,所以为了安全起见。决定在这一版本的后台框架采用严密的加解密算法使我们的数据传输更加的安全。同时我们也进行了数据传输过程中的数据压缩和用户的签名验证等等...,等一下我将会介绍一下,算是最这些的一个小小的总结吧!

  2. 算法介绍:

    (1)MD5算法:

    《1》算法介绍:

          MD5:输入任意长度的信息,输出为128位的信息(数字指纹);不同的输入得到不同的结果(唯一性).

    《2》主要用途:

       1)防止被篡改:
          比如发送一个电子文档,发送前,我先得到MD5的输出结果a。然后在对方收到电子文档后,对方也得到一个MD5的输出结果b。如果a与b一样就代表中途未被篡改。2)比如我提供文件下载,为了防止不法分子在安装程序中添加木马,我可以在网站上公布由安装文件得到的MD5输出结果。3)SVN在检测文件是否在CheckOut后被修改过,也是用到了MD5.

        2)防止直接看到明文:
        现在很多网站在数据库存储用户的密码的时候都是存储用户密码的MD5值。这样就算不法分子得到数据库的用户密码的MD5值,也无法知道用户的密码(其实这样是不安全的,后面我会提到)。(比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。)

        3)防止抵赖(数字签名):
        这需要一个第三方认证机构。例如A写了一个文件,认证机构对此文件用MD5算法产生摘要信息并做好记录。若以后A说这文件不是他写的,权威机构只需对此文件重新产生摘要信息,然后跟记录在册的摘要信息进行比对,相同的话,就证明是A写的了。这就是所谓的“数字签名”。

    (2).RSA:典型的非对称算法:

    《1》算法介绍:

            它是一种典型的非对称性的加密算法。如下图所示:

    《2》主要用途:

    这种算法1978年就出现了,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。

    (3).AES算法:

    《1》算法介绍:

              密码学中的高级加密标准算法,是一种实用性的对称加解密算法,下一代加密算法标准,速度快,安全级别高.

    《2》主要用途:

             保密性:防止用户的标识或数据被读取。

             数据完整性:防止数据被更改。

             身份验证:确保数据发自特定的一方。

     3.  项目实际使用情况介绍:

 注意:api_version的作用是如果黑客知道了我们的RSA算的公钥和私钥,我们会直接升级API版本,然后发送大家推送消息。升级!这样我们的服务器就会再次生成一对公钥和私钥!

           expires的作用是签名验证的时候设置认证时间!

 4.  总结:

         当今计算机技术的发展与密码学研究不断地取得进步,我们也只是利用了一些最简单的密码学知识来解决一些现实生活中遇到的问题!当然,任何的加密系统总有他的不足之处,软件业真正意义上的安全还要靠我们国家制定de相应的法律、法规来规范软件开发业的行为。最重要的是,也是最根本性的问题还要不断提高公民的素质,自发的来维护软件业的秩序!
 

© 著作权归作者所有

共有 人打赏支持
Java_Coder
粉丝 59
博文 159
码字总数 102864
作品 0
杭州
私信 提问
浅谈android数据存储加密

写在开头 CSDN:http://blog.csdn.net/sayfromwen 掘金:https://juejin.im/user/59b09eb2518825241e2255ea 在移动端的开发中,数据安全的问题一直是大家备受关注的,数据加密技术也受到了大...

亭子happy
10/15
0
0
iOS加密总结

加密一般分为 对称加密和非对称加密。 —、对称加密 对称密码学分成分组密码和序列密码(流密码)两部分,他们差异较大易于区分。 序列密码 序列密码单独加密每个位。它是通过将密钥序列中的每...

wesk痕
2016/11/20
54
0
加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较

转载自:http://www.cnblogs.com/sochishun/p/7028056.html 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法:对称式加...

悬河
06/12
0
0
Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
04/26
0
0
憧憬Licoy/encrypt-body-spring-boot-starter

简体中文 | English 介绍 是对SpringBoot控制器统一的响应体加密与请求体解密的注解处理方式,支持MD5/SHA/AES/DES/RSA。 加密解密支持 可进行加密的方式有: 可进行解密的方式有: 使用方法...

憧憬Licoy
10/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

错误: 找不到或无法加载主类

在IDEA的使用过程中,经常断掉服务或者重启服务,最近断掉服务重启时突然遇到了一个启动报错: 错误:找不到或无法加载主类 猜测:1,未能成功编译; 尝试:菜单---》Build---》Rebuild Pro...

安小乐
16分钟前
1
0
vue路由传参,刷新页面,引发的bug

最近遇到一个bug 通过vue路由跳转到页面, 然后接参控制(v-if ),成功显示 而刷新页面,显示失败。 苦苦地找了半天原因,打印参数发现正确,再打印下类型......,路由跳过来会保持传参时的...

hanbb
17分钟前
0
0
【58沈剑 架构师之路】InnoDB,select为啥会阻塞insert?

MySQL的InnoDB的细粒度行锁,是它最吸引人的特性之一。 但是,如《InnoDB,5项最佳实践》所述,如果查询没有命中索引,也将退化为表锁。 InnoDB的细粒度锁,是实现在索引记录上的。 一,Inn...

张锦飞
20分钟前
0
0
冒泡,选择和插入排序比较

/** * 冒泡排序,两层嵌套循环,内层局部比较后,找出最大或者最小数据并交换数据,使其局部有序,外层用于比较剩余元素,相较于选择排序,选择排序相当于是冒泡的一个优化版本(减少了交换...

strict_nerd
21分钟前
0
0
html内联(行内)元素、块级(块状)元素和行内块元素分类

HTML可以将元素分类方式分为内联(行内)元素、块级(块状)元素和行内块元素三种。 注:HTML是标签语言,那么既然是标签,就可以自己定义一些自己元素(如<wode>自定义的元素</wode>等),自...

NB-One
26分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部