对称加密和非对称加密的区别

weblog Md 801 0 0

一、对称加密

  对称加密(Symmetric Cryptography),又称私钥加密。

  在对称加密算法中,加密和解密使用的是同一把钥匙,即:使用相同的密匙对同一密码进行加密和解密;
加密过程如下:

加密:原文 + 密匙 = 密文
解密:密文 - 密匙 = 原文

  对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key),这种方法在密码学中叫做对称加密算法。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。如果你只用1 bit来做这个密钥,那黑客们可以先试着用0来解密,不行的话就再用1解;但如果你的密钥有1 MB大,黑客们可能永远也无法破解,但加密和解密的过程要花费很长的时间。密钥的大小既要照顾到安全性,也要照顾到效率,是一个权衡。

二、非对称加密

  非对称加密(Asymmetric Cryptography),又称公钥加密。
  非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。 非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。

  另一方面,甲方可以使用自己的私钥对机密信息进行签名后再发送给乙方;乙方再用甲方的公钥对甲方发送回来的数据进行验签。

三、对称加密的优缺点:

  • 优点:算法简单,加密解密容易,效率高,执行快。
  • 缺点:相对来说不算特别安全,只有一把钥匙,密文如果被拦截,且密钥也被劫持,那么,信息很容易被破译。

四、非对称加密的优缺点:

  • 优点:安全,即使密文被拦截、公钥被获取,但是无法获取到私钥,也就无法破译密文。作为接收方,务必要保管好自己的密钥。
  • 缺点:加密算法及其复杂,安全性依赖算法与密钥,而且加密和解密效率很低。

猜你喜欢
weblog 1803 javaMD5javascript工具没有盐java工具importjava.security.MessageDigest
weblog 2235 java服务端实现sha256importjava.io.UnsupportedEncodingException;importjava.security.MessageDigest
javascript,前端 1143 jsjavascriptforinforof,forof遍历原理 一、 forin是ES5语法,forof是ES6语法forin是无序遍历数组或,也就是随机遍历,不按照顺序来
javascript,加密算法 259 js示例代码 functiongeneratePrivateKey(length=64){ constbytes=newUint8Array(length); window.crypto.getRandomValues(bytes); returnBigInt(`0x${bytes.reduce((data,byte)=data+('00'+byte.toString(16)).slice(-
vue 861 true时,都会占据页面位置 二、v-show与v-if 控制手段不同编译过程不同编译条件不同 控制手段:v-show隐藏则是为该元素添css—display:none,dom元素依旧还在。v-
weblog 4121 String类实现及其不可变性 于String类实现从源码中可以看出,String类底层维护着一个final修饰char数组,用来储存字符。并且除了hash这个属性其它属性都声明为
weblog 4673 intInteger 说起intInteger大家耳熟能详是: int是java中基本数据类型,而Integer是引用类型。 Integer必须实例化后才能使用,而
java基础 3751 局结构,在Java语言里就显得有些粗糙了,实际内存域划分要比这更复杂。不过这种划分方式流行也间接说明了程序员最关注、与象内存分配关系最域是“堆”“栈”两块。其中,“堆”在稍后笔者会
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。