转:加密与解密

加密算法简介

签名算法

  • 应用场景:检查报文正确性
  • 方案:从报文文本中生成报文摘要
  • 常用SHA或者MD5作为签名算法
  • 缺点:签名算法不是加密算法,不能用来加密,作用是检查篡改

对称加密算法

  • 应用场景:传递不适合明文传输的报文
  • 方案:如果用一个密码把消息加密,解密的时候还用这个密码,这种加密算法就是对称加密算法
  • 常用AES加密算法
  • 缺点:密码需要定期更新,带来密码安全传递问题

DH密钥交换算法

  • 应用场景:通信双方需要约定一个密码,但是又必须通过一个不安全的信道传递密码
  • 方案: 
    1. 发送方私有一个 a ,通过已知算法发送遗传信息 A
    2. 接收方私有一个 b ,通过已知算法发送遗传信息 B
    3. 发送方根据 a 和 B 通过算法计算出最终密码 C ,接收方根据 b 和 A 通过算法计算出最终密码 C
    4. 中间人只获取到 A B ,不足以计算出 C
  • 常用Diffie-Hellman密钥交换算法
  • 缺点:中间人攻击可破解 

    中间人攻击: 
    伪造接收方向发送方协商密码,根据 b’ ,发送 B’ ;伪造发送方向接收方协商密码,根据 a’ ,发送 A’ ;从而获得最终密码 C1’C2’

非对称加密

    • 应用场景:避免密钥交换流程
    • 方案:
      1. 发送方根据接收方的公钥,对原文进行加密;
      2. 接收方根据自己的私钥,对原文进行解密;
      3. 发送方会对原文摘要,根据自己的私钥,进行(加密)签名;
      4. 接收方会对原文解密后,根据发送方的公钥,进行(解密)验签;
      5. 发送方和接收方只需公开公钥,保护各自的私钥,无需向彼此发送秘钥;
      6. 中间人没有双方的私钥,无法解密报文,也无法伪造签名(报文);

      签名:对明文进行摘要后,使用秘钥对摘要进行加密,得到签名 
      验签:对签名使用秘钥进行解密,与明文的摘要对比,进行验签

    • 常用RSA非对称加密算法
    • 缺点: 
      • 需要事先生成公钥私钥对
      • 针对每个用户各自生成的一对公钥私钥,要对原文进行多次加密和签名
      • 计算量较大

附上原文链接:

http://blog.csdn.net/u014628531/article/details/52665178

时间: 2024-10-14 12:00:53

转:加密与解密的相关文章

Java DES 加密和解密源码

Java密码学结构设计遵循两个原则: 1) 算法的独立性和可靠性. 2) 实现的独立性和相互作用性. 算法的独立性是通过定义密码服务类来获得.用户只需了解密码算法的概念,而不用去关心如何实现这些概念.实现的独立性和相互作用性通过密码服务提供器来实现.密码服务提供器是实现一个或多个密码服务的一个或多个程序包.软件开发商根据一定接口,将各种算法实现后,打包成一个提供器,用户可以安装不同的提供器.安装和配置提供器,可将包含提供器的ZIP和JAR文件放在CLASSPATH下,再编辑Java安全属性文件来

PHP 加密 和 解密 方法

关于Discuz的加密解密函数,相信大家都有所了解,该authcode函数可以说是对PHP界作出了重大的贡献,真的发觉discuz这个函数写的太精彩啦. 研究了一下这个算法,总的来说可以归纳为以下三点: 1,动态性,同一字符串使用相同的key,每次加密的密文都不一样,而解密方法只有一个,其实就是把解密的信息放到了密文上面. 2,时效性,可以自己加一个限期参数,以秒为单位,这个其实就是在密文里加入了有效时间. 3,统一性,加密和解密都用同一个函数,而且用了比较简单的异或算法. 由于该函数具有以上功

AES —— JAVA中对称加密和解密

package demo.security; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import java.util.Base64; impor

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性

运维学习之加密和解密

运维学习之加密与解密: 众所周知,在网络的世界里不存在绝对的安全性.各种钓鱼网站,病毒等等危害着我们的网 络环境.所以,作为一个运维人员,在我们利用网络进行通信时,保证通信的机密性.完整性.可用性是必要的. 我们的日常生活中有以下三点威胁网络安全的行为: 1.威胁机密性的攻击行为,它的途径是窃听.嗅探.扫描和通信量分析 2.威胁完整性的攻击行为,它的途径是更改.伪装.重放.否认 3.威胁可用性的攻击行为,它的途径是拒绝服务 为应对以上问题,我们在技术和服务两方面提出了解决方案: 从技术上我们使用

第六章 加密与解密

6.1 什么是加密和解密? 加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密). 6.2 加密技术二元素:算法和密钥 算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的官方的步骤: 密钥是用来对数据进行编码和解密的一种算法. 在安全保密中,可通过适当的密钥加密技术和管理机制来保证网络的信息通信安全,使得未授权的用户即使获得了已加密的信息,但因不知解密方法,仍然无法了解信息内容. 6.3 为什么要加密?

RSA算法 JS加密 JAVA解密

有这样一个需求,前端登录的用户名密码,密码必需加密,但不可使用MD5,因为后台要检测密码的复杂度,那么在保证安全的前提下将密码传到后台呢,答案就是使用RSA非对称加密算法解决 . java代码 需要依赖 commons-codec 包 RSACoder.java import org.apache.commons.codec.binary.Base64; import javax.crypto.Cipher; import java.security.*; import java.securit

加密和解密技术基础、PKI及创建私有CA

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说

iOS,一行代码进行RSA、DES 、AES、MD5加密、解密

最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,服务器也会返回数据,服务器是用Java开发的,客户端要同时支持多平台(Android.iOS),在处理iOS的数据加密的时候遇到了一些问题.起初采取的方案是DES加密,老大说DES加密是对称的,网络抓包加上反编译可能会被破解,故采取RSA方式加密.RSA加密时需要公钥和私钥,客户端保存公钥加密数据,服务器保存私钥解密数据.(iOS端公钥加密私钥解密.java端公钥加密私钥解密,java端私钥加密公钥解密都容易做到,iOS不

转:system.Security.Cryptography C# 加密和解密

以下文转自: http://www.360doc.com/content/13/0122/05/19147_261678471.shtml 总结:注册的时候经过MD5加密存进数据库,在登录的时候需要先加密输入的密码,再进行和数据库里的比对,因为同一字符串加密后是一样的,并不是无规则的:实例: string name = this.TextBox1.Text;        string pwd = System.Web.Security.FormsAuthentication.HashPassw