对加密解密及数字签名的理解

转载 2013年12月06日 08:24:38

对加密解密及数字签名的理解

数据加密有两种类型,一种是对称加密,另一种是不对称加密;

对称加密的发送方和接受方都使用同一个密钥对数据进行加密解密,因此,在发送加密数据的时候同时也要发送密钥,接收方接到密钥后才能对数据进行解密,这就有一个问题,那就是,如果别人拦截到了密钥,相当于钥匙被别人偷走了,那这个加了密的数据马上可以被破解,这就等于没有加密,所以在网络传输中不安全。

非对称加密使用的是公钥/密钥来进行加密解密,如果用公钥进行加密的数据,那就只能用对应的私钥才能够解开(用公钥本身不能解开),如果用私钥对数据进行加密,那么只能用对应的公钥才能解开。

在网络传输数据时,往往采用两种加密方法结合起来使用,其基本思想是:用不对称加密算法加密对称加密算法的密钥,用对称加密算法的密钥加密实际数据。其实现方案如下:

 

1.首先,传输双方均各自生成一个公钥/私钥对----相当于各自有一把锁和锁的钥匙

2.通过TCP交换公钥----相当于把自己的锁交给对方

3.双方各自生成一个对称加密用的密钥并使用对方的公钥加密新创建的密钥。---相当于用对方给的锁进行加密

4.双方将加密后的对称加密用的密钥发送给对方,以便对方利用此密钥解密。---使用自己留着的钥匙解开数据获取对称加密的密钥

5.双方使用对称加密进行会话----因为上一步已经获取了对方加密实际数据使用的对称加密所用的密钥,因此,会话的时候只需要使用对称加密来进行加密解密

总结:网络传输数据时用非对称加密方法仅仅用来确保后面我们使用对称加密的密钥不会被盗,相当于只是将钥匙安全送达对方手里,这样的话,我们之后用对称加密加密的实际数据就不会被别人偷看了,因为只有自己和对方才有钥匙,别人没有!

数据签名

数据签名是利用私钥加密必须用公钥解密的原理来实现的,它的功能是用于接收方验证所接收的数据到底是不是我们认为的那个发送者发送的,判断传输过程中数据有没有被更改!

具体流程:

相关文章推荐

对加密解密及数字签名的理解

对加密解密及数字签名的理解 数据加密有两种类型,一种是对称加密,另一种是不对称加密; 对称加密的发送方和接受方都使用同一个密钥对数据进行加密解密,因此,在发送加密数据的时候同时也要发送密钥,接收方...

Java实现 RSA加密解密及数字签名

1.RSAUtils.javapackage com.ecs.rsa;import java.io.ByteArrayOutputStream; import java.security.Key; i...

RSA加密解密和数字签名

上网研究了一下RSA加密解密和作为数字签名的用法,整理了一下,写了一个类,总结了用法。 用到了commons-codec-1.6.jar的Base64类 package tj.rsa_pkcs; ...
  • forai
  • forai
  • 2015年04月16日 17:28
  • 569

DES、RSA、RSA数字签名、MD5、SHA 加密解密代码

///     /// 作者:李照     /// 时间:2014-06-05 15:56:23     ///     public static class E...

RSA加密解密及数字签名Java实现

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工...

关于php的openssl 加密解密以及数字签名

好久没写csdn博客了,今天把这个记录下来,以备后用,同时欢迎广大同行一起探讨相关话题。         首先,下面的代码是参考网上一位朋友的,然后,部分逻辑是我参考银联支付安全策略加进去的。本文件...

加密解密与数字签名

在工作中,我们用到了加密与解密,以及数字签名,所以对它的原理以及实现进行讲解: 实际上数字签名又称作基于PKI的电子签名, PKI的核心机构是电子认证服务提供者,即通称的认证...

Java 实现 RSA加密解密及数字签名

RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的。当时他们三人都在麻省理工学...

RSA加密解密及数字签名Java实现

RSA加密解密及数字签名Java实现     RSA公钥加密算法是1977年由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leon...

加密解密,数字签名及证书

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对加密解密及数字签名的理解
举报原因:
原因补充:

(最多只允许输入30个字)