`
bjmike
  • 浏览: 282876 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

对称加密和非对称加密

 
阅读更多
加密解密存在两种算法,对称加密和非对称加密.
加密的实质就是数学运算.
对于对称加密,存在一个KEY,所以,对称算法都是可逆的.逆运算就可以得到原文.
非对称加密分为可逆和不可逆,例如,MD5是不可逆的.其实不是说不可逆运算,只是逆运算后,源结果有无穷个.
RSA是可逆的.它是由公钥/私钥组成.公钥加密后,只有配套私钥能解.
例子:
A与B通信
A生成密钥公钥A/私钥A.
B生成密钥公钥B/私钥B.
A通过网络之类把公钥A发送给B,反之亦然.
以后,A发送给B的数据,先用公钥B加密,加密后,只有B能解开,因为只有他拥有私钥B.反之亦然.


中间人欺骗:
假设C位于A与B之间,那么A发送公钥A给B的时候,C拦截下来,把公钥C发给B.反之亦然.
然后,A发送数据,用公钥C加密,C接收后,用私钥C解密.然后再用公钥B加密后发送给B.反之亦然.


所以你明白为什么要有个MD5了吧.
另外,对称算法速度快,但可逆;非对称速度慢.所以一般地说,还是用对称算法加密,只是KEY先用非对称交换.


都是些常识性的东西,楼主先找些资料看看再说吧.

RSA加密需要注意的地方
不管明文长度是多少,RSA 生成的密文长度总是固定的。
但是明文长度不能超过密钥长度。比如 Java 默认的 RSA 加密实现不允许明文长度超过密钥长度减去 11(单位是字节,也就是 byte)。也就是说,如果我们定义的密钥(我们可以通过 java.security.KeyPairGenerator.initialize(int keysize) 来定义密钥长度)长度为 1024(单位是位,也就是 bit),生成的密钥长度就是 1024位 / 8位/字节 = 128字节,那么我们需要加密的明文长度不能超过 128字节 -
11 字节 = 117字节。也就是说,我们最大能将 117 字节长度的明文进行加密,否则会出问题(抛诸如 javax.crypto.IllegalBlockSizeException: Data must not be longer than 53 bytes 的异常)。
分享到:
评论

相关推荐

    常见加密算法方式(对称加密和非对称加密)

    根据加密过程中使用的密钥类型,加密算法大致可以分为两大类:**对称加密算法**和**非对称加密算法**。此外,还有一类特殊的加密算法——**散列(Hash)算法**,用于生成数据的摘要信息。 ### 对称加密算法 对称...

    对称加密和非对称加密介绍和区别

    ### 对称加密与非对称加密的介绍及区别 #### 一、对称加密技术概述 **对称加密**采用了对称密码编码技术,它的核心...综上所述,对称加密和非对称加密各有优劣,选择合适的加密算法需根据具体应用场景的需求来决定。

    对称密码和非对称密码实现

    在密码学领域,数据安全是至关重要的,而对称密码和非对称密码是两种主要的加密技术,用于保护信息的机密性。本篇将深入探讨这两种密码体制及其在实际应用中的实现,特别是对DES(Data Encryption Standard)对称...

    java编写的加密解密工具,有对称加密和非对称加密

    本工具包就是针对这一需求而设计的,它提供了对称加密和非对称加密两种常见的加密算法,为数据的安全传输和存储提供了保障。 对称加密是最早、最简单的一种加密方式,它的特点是加密和解密使用同一个密钥。在Java中...

    对称加密 非对称加密 需要的jar包

    1. **bcprov-ext-jdk15on-149.jar**:这是Bouncy Castle提供的加密库,是一个强大的密码学API,支持多种加密算法,包括对称和非对称加密。Bouncy Castle为Java提供了额外的加密功能,比如对某些非标准或较新的加密...

    C#对称加密和非对称加密的Demo

    在C#编程环境中,我们可以利用内置的类库实现对称加密和非对称加密。本篇将详细介绍这两种加密方式,并结合提供的"RsaEncryptExample"和"TdesEncryptExample"代码示例进行解析。 **1. 对称加密** 对称加密是最常见...

    密码学实验_对称加密算法DES_非对称加密算法RSA.pdf

    综上所述,本实验涵盖了密码学中的核心概念,通过实践使学生掌握了对称加密和非对称加密的实现细节。这种实践性的学习方法有助于巩固理论知识,增强实际问题解决能力,对于网络安全领域的研究和工作具有重要意义。

    Go-go语言封装的各种对称加密和非对称加密

    本项目"Go-go语言封装的各种对称加密和非对称加密"正是针对这一需求,提供了便捷的Go语言实现,包括3重DES、AES的CBC和CTR模式以及RSA非对称加密。下面将详细介绍这些加密算法及其在Go中的应用。 1. 对称加密: - ...

    非对称加密和对称加密混合应用

    5.用对称密钥对(原文和签名)进行加密 6.用对方的公钥对称密钥进行加密(加密密钥) 7.将密文(5)和加密密钥(6)一起发给对方 接收方: 1.用自己的私钥对加密密钥进行解密,得到对称密钥--也只有自己才能...

    对称加密非对称加密

    其中,对称加密和非对称加密是两种主要的加密方式,它们各自有着独特的特点和应用场景。本文将深入探讨这两种加密算法及其工作原理。 首先,对称加密是最基础且历史悠久的加密方法。它基于一个秘密的密钥,即加密和...

    RSA非对称加密算法

    RSA 非对称加密算法是一种经典的非对称加密算法,由罗纳德·李维斯特、阿迪·萨莫尔和伦纳德·阿德曼三人于 1977 年共同提出的。该算法的主要思想是基于大素数的乘积和因式分解之间的关系,通过选择两个大素数 p 和 ...

    对称与非对称加密

    对称加密和非对称加密各有优势,在实际应用中可以根据不同的场景需求来选择合适的加密方式。对称加密适用于数据量大、实时性强的应用场景;而非对称加密则更适合于密钥分发和身份验证等场景。随着技术的发展,加密...

    C语言实现非对称密码算法RSA

    C语言实现非对称密码算法RSA,其中RSA计算采用的是平方乘算法

    十二张图:从0开始理解对称-非对称加密、CA认证、以及K8S各组件颁发证书原由.doc

    对称加密和非对称加密结合的方式是客户端先获取到服务端的公钥,然后自己生成一个唯一的随机密钥 A,使用公钥加密随机密钥 A,这时只有服务端的私钥才能解密出随机密钥 A。服务端拿到随机密钥 A 之后,服务端和...

    对称加密和非对称加密及数字证书的加密过程

    对称加密和非对称加密及数字证书的加密过程

    数据对称与非对称的加解密

    数据加密是保护信息安全的主要手段,主要分为对称加密和非对称加密两种方法。本文将深入探讨这两种加密方式,并结合Mina框架,阐述如何实现它们在数据传输中的应用。 首先,我们来看对称加密。对称加密是最传统的...

    非对称密码

    除了RSA和ELGamal,还有多种其他非对称密码算法,如椭圆曲线密码学(ECC)、Rabin密码和背包密码等。其中,ECC利用椭圆曲线上的点加法和倍增操作,相较于传统的大数分解或离散对数问题,能在相同安全级别下使用更短...

    非对称加密算法流程图

    非对称加密算法流程图,使用visio绘制。

    前后端RSA非对称加密解密(代码示例).rar

    太不安全,应该加密传输,怎么做呢,对称加密一旦秘钥丢失则形同虚设,最好使用非对称加密的方式,由后端事先生成公钥和私钥,公钥发给前端页面,私钥后端自己保留,前端进行认证时,把密码原文用公钥加密再发给后端...

Global site tag (gtag.js) - Google Analytics