1.md5不可逆的加密方式,加密成一个32位的字符串。算法是公开的,任何语言的加密结果都是一样的。总有可能是重复的。
    用途:
            (1)防止明文存储:可以用作密码加密
            (2)防止篡改:判断文件变化,将程序生成一个字节流,然后md5加密一下,判断加密结果是否有变化,可以防止程序挂载木马或者做类似SVN的东西。
            (3)防止抵赖,数字签名。用于第三方认证机构。
    解密:对撞库、穷举法。
    防破解手段:1加盐。用户输入的基础上加上一些字符串然后做md5加密,防止被撞库。2.双md5加密,加密两遍,防止重复。
    扩展-云盘秒传的实现方式:1.用户上传文件后,客户端通过对Stream流或者文件的摘要做一个md5加密 2.判断数据库中是否有相同值的文件,如果有,直接将路径复制一份过来。3.如果没有则不支持秒传。
2.Des对称可逆加密
    对称:加密解密是同一个key。des是代表性算法,密钥长度为8
    优点速度快,但是秘钥的管理不方便,要求共享秘钥。
3.RSA非对称可逆加密
   非对称:加密解密不是同一个Key,但是key成对出现。加密key与解密key是不能互相转化的。
   有点:密钥管理方便,缺点速度慢。
   命名:公钥私钥是相对的,其实叫加密key和解密key更贴切,因为有时候需要暴露加密key,有时候需要暴露解密key,被暴露的就是公钥,隐藏的就是私钥。
   过去的加密解密处理方式:
        加密:提供给方法一个需要加密的内容后,加密算法返回三个值:公钥、私钥、和加密值。
        解密:通过私钥和加密内容获得解密结果值。
  新的推荐方式
        通过Rsa类获取KeyValuePair键值对,键为公钥,值为私钥。
        加密:通过公钥加密获取加密值。
        解密:通过私钥解密获取解密值。
用途:
    1.可以判断请求来源的唯一性、合法性。因为加密解密key是一对的。加密key私有,解密key公开,只有拥有加密key的人才能发送消息。
    2.可以判断请求目的的唯一性、合法性。解密key私有,加密key公开,只有拥有解密key的人才能解密看到。
4.单边认证https通讯三次握手
 1.client向server发起请求,server返回一个签名和公钥(加密钥)。
 2.client通过公钥加密一个字符串"abcd"发送到服务器,服务器通过私钥(解密key)解密得到"abcd"字符串并返回client表示自己是合法服务器。
 3.client与server开始通过"abcd"作为对称加密的秘钥开始通讯。
5.网站证书认证
 1.公司像CA机构提交名称网址。
 2.CA机构生成一个签名(MD5加密值),对应一个有效的证书。
 3.公司下载一个证书文件,文件中包含
                                                            1.公司详细信息,MD5信息避免修改
                                                            2.CA机构信息
                                                            3.不对称可逆加密的加密解密Key,然后就可以支持https通讯了。
6.银行卡双边认证(两对加密解密秘钥)
   1.client向server发起请求,server返回一个签名和公钥(加密钥)。
   2.client通过公钥加密一个字符串"abcd"发送到服务器,服务器通过私钥(解密key)解密得到"abcd"字符串并返回client表示自己是合法服务器。
   3.client确认了服务器的身份并发送证书给server,完成了第一次验证,证书验证。
   4.server完成证书验证后初步认可client的身份并拿公钥加密"1234"并将值发送给client。
    5.client通过私钥解密后将解密值“1234”发送给服务器,服务器校验1234无误,完成第二次验证,秘钥验证。
    6.服务器发送对称加密字符串给client,双方开始通讯。
  
总结:md5保证文件不被篡改,保证有效,RSA做服务器身份验证,用Des做数据传输。

md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证的更多相关文章

  1. MD5 不可逆加密,Des对称可逆加密 ,RSA非对称可逆加密 ,数字证书 SSL

    :MD5 不可逆加密2:Des对称可逆加密3:RSA非对称可逆加密4:数字证书 SSL Anker_张(博客园)http://www.cnblogs.com/AnkerZhang/ 1:MD5 不可逆 ...

  2. RSA非对称可逆加密

    /// <summary> /// RSA ECC /// 可逆非对称加密 /// 非对称加密算法的优点是密钥管理很方便,缺点是速度慢. /// </summary> usin ...

  3. JAVA生成RSA非对称型加密的公钥和私钥(利用JAVA API)

    非对称型加密非常适合多个客户端和服务器之间的秘密通讯,客户端使用同一个公钥将明文加密,而这个公钥不能逆向的解密,密文发送到服务器后有服务器端用私钥解密,这样就做到了明文的加密传送. 非对称型加密也有它 ...

  4. 【转载】非对称加密过程详解(基于RSA非对称加密算法实现)

    1.非对称加密过程:         假如现实世界中存在A和B进行通讯,为了实现在非安全的通讯通道上实现信息的保密性.完整性.可用性(即信息安全的三个性质),A和B约定使用非对称加密通道进行通讯,具体 ...

  5. 【编程开发】非对称加密过程详解(基于RSA非对称加密算法实现)

    1.非对称加密过程:         假如现实世界中存在A和B进行通讯,为了实现在非安全的通讯通道上实现信息的保密性.完整性.可用性(即信息安全的三个性质),A和B约定使用非对称加密通道进行通讯,具体 ...

  6. RSA非对称 私钥加密

    RSA生成公钥和私钥对 /// <summary> /// RSA生成公钥和私钥 /// </summary> /// <returns></returns& ...

  7. MD5,Des,RSA加密解密

    一.加密和解密 下面先熟悉几个概念 1>对称加密:加密的key和解密的key是同一个 但是如何确保密钥安全地进行传递?秘钥的安全是一个问题 2>非对称加密:加密点的key和解密的key不是 ...

  8. 对称加密DES加密

    DES加密: des是对称加密,加密和解密需要相同的秘钥,它的密码最长56位,必须是8的倍数,秘钥越长,越安全. package com.trm.util.encrypt; import java.s ...

  9. RSA非对称加密,使用OpenSSL生成证书,iOS加密,java解密

    最近换了一份工作,工作了大概一个多月了吧.差不多得有两个月没有更新博客了吧.在新公司自己写了一个iOS的比较通用的可以架构一个中型应用的不算是框架的一个结构,并已经投入使用.哈哈 说说文章标题的相关的 ...

随机推荐

  1. HDU——1281 棋盘游戏

    棋盘游戏 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submis ...

  2. FJNUOJ1158(莫比乌斯反演)

    题目:给定n个数字a1...an.有m个询问,格式为L R X Y,意为求aL到aR之间与x的最大公因数为y的个数. 数据组数T<=20 1<=n,m<=1e5 1<=ai&l ...

  3. HashSet源码分析2

    package com.test1; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public ...

  4. IOS开发之简单计算器

    用Object-C写的一个简单的计算机程序,主要学习按钮的action动作. 以下是主界面: 以下代码时界面按钮和ViewController.h连接的地方: - (IBAction)button_0 ...

  5. MapReduce Cross 示例

    MapReduce Cross 示例 package com.bsr.cross; import java.io.IOException; import org.apache.hadoop.conf. ...

  6. Windows系统下JAVA开发环境搭建

    首先我们需要下载JDK(JAVA Development Kit),JDK是整个java开发的核心,它包含了JAVA的运行环境,JAVA工具和JAVA基础的类库. 下载地址:http://www.or ...

  7. LVS 负载均衡 (VS/DR模式 与 VS/TUN 模式)

    一.VS/DR模式 ①.客户端将请求发往前端的负载均衡器,请求报文源地址是CIP,目标地址为VIP. ②.负载均衡器收到报文后,发现请求的是在规则里面存在的地址,那么它将目标MAC改为了RIP的MAC ...

  8. Python爬虫开发【第1篇】【正则表达式】

    非结构化数据:HTML(正则表达式.XPath.CSS选择器) 结构化数据:JSON文件(JSON Path.转化为Python类型进行操作) XML文件(转化成Python类型.XPath.CSS选 ...

  9. 混合使用Delphi和C ++(附下载)

    您想将C ++添加到Delphi应用程序中吗?或者将Delphi代码添加到C ++应用程序中?这是如何做. 您可能不知道的一件事是如何在RAD Studio中集成C ++和Delphi语言.您可以将单 ...

  10. python中如何理解if __name__ == '__main__'

    __name__ 是当前模块名,当模块被直接运行时模块名为 __main__ .这句话的意思就是,当模块被直接运行时,以下代码块将被运行,当模块是被导入时,代码块不被运行.我们通过一个简单的例子来理解 ...