文档章节

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

Java_Coder
 Java_Coder
发布于 2014/11/11 22:43
字数 1191
阅读 524
收藏 15
点赞 5
评论 0
  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
粉丝 58
博文 155
码字总数 102864
作品 0
杭州
iOS加密总结

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

wesk痕 ⋅ 2016/11/20 ⋅ 0

常用加密算法

对称加密算法(加解密密钥相同) 名称 密钥长度 运算速度 安全性 资源消耗 DES 56位 较快 低 中 3DES 112位或168位 慢 中 高 AES 128、192、256位 快 高 低 非对称算法(加密密钥和解密密钥不同...

Nov_Eleven ⋅ 2014/10/21 ⋅ 0

加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较

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

悬河 ⋅ 06/12 ⋅ 0

Api接口加密策略

接口安全要求: 1.防伪装攻击(案例:在公共网络环境中,第三方 有意或恶意 的调用我们的接口) 2.防篡改攻击(案例:在公共网络环境中,请求头/查询字符串/内容 在传输过程被修改) 3.防重放...

⋅ 2017/12/18 ⋅ 0

AES,SHA1,DES,RSA,MD5区别

AES:更快,兼容设备,安全级别高; SHA1:公钥后处理回传 DES:本地数据,安全级别低 RSA:非对称加密,有公钥和私钥 MD5:防篡改 相关: 公开密钥加密(英语:public-key cryptography,又...

北方人在上海 ⋅ 2015/11/17 ⋅ 0

Android 数据加密和编码总结

最近正好在项目中用到数据加密,于是从网上查阅一些资料,了解各种加密方式并写代码验证,就在本篇文章中做个总结吧。 我将从这几个方面介绍 Android 中的加密方式以及相关的概念: 1. 异或加...

落英坠露 ⋅ 2017/11/15 ⋅ 0

数据MD5+base64、AES+RSA加密原理

在服务器与终端设备进行HTTP通讯时,常常会被网络抓包、反编译(Android APK反编译工具)等技术得到HTTP通讯接口地址和参数。为了确保信息的安全,我们必须进行接口参数加密和解密。本文只讲...

朝雨晚风 ⋅ 2016/07/14 ⋅ 0

Android外部文件加解密及应用实践

有这样的应用场景,当我们把一些重要文件放到asset文件夹中时,把.apk解压是可以直接拿到这个文件的,一些涉及到重要信息的文件我们并不想被反编译拿去,这个时候需要先对文件进行加密,然后...

C6C ⋅ 05/08 ⋅ 0

nginx 加上ssl配置

user nobody; #双核2个进程 worker_processes 2; workercpuaffinity 01 10; #8核开启8个进程 worker_processes 8; workercpuaffinity 10000000 01000000 00100000 00010000 00001000 0000010......

之渊 ⋅ 2016/12/23 ⋅ 0

AES,SHA1,DES,RSA,MD5区别 

AES,SHA1,DES,RSA,MD5区别 加密 版权声明:本文为博主原创文章,未经博主允许不得转载。 AES:更快,兼容设备,安全级别高; SHA1:公钥后处理回传 DES:本地数据,安全级别低 RSA:非对称加...

法斗斗 ⋅ 2016/05/31 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

BS与CS的联系与区别【简】

C/S是Client/Server的缩写。服务器通常采用高性能的PC、工作站或小型机,并采用大型数据库系统,如Oracle、Sybase、InFORMix或 SQL Server。客户端需要安装专用的客户端软件。 B/S是Brower/...

anlve ⋅ 49分钟前 ⋅ 0

发生了什么?Linus 又发怒了?

在一个 Linux 内核 4.18-rc1 的 Pull Request 中,开发者 Andy Shevchenko 表示其在对设备属性框架进行更新时,移除了 union 别名,这引发了 Linus 的暴怒。 这一次 Linus Torvalds 发怒的原...

问题终结者 ⋅ 今天 ⋅ 0

在树莓派上搭建一个maven仓库

在树莓派上搭建一个maven仓库 20180618 lambo init 项目说明 家里有台树莓派性能太慢。想搭建一个maven私服, 使用nexus或者 jfrog-artifactory 运行的够呛。怎么办呢,手写一个吧.所在这个...

林小宝 ⋅ 今天 ⋅ 0

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 今天 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 今天 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 今天 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 今天 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部