APP开发实战42-非对称加密介绍

转载 2016年05月30日 21:55:57

12.3非对称加密

非对称加密需要两个密钥公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。因为加密和解密使用的是两个不同的密钥,所以叫非对称加密。

在非对称加密中使用的主要算法有:RSAElgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)等。

非对称加密工作过程示意图:

(1)乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。

(2)得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。

(3)乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。

    在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。

    同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。

    非对称加密与对称加密相比,其安全性更好:对称加密的通信双方使用相同的秘钥,如果一方的秘钥遭泄露,那么整个通信就会被破解。而非对称加密使用一对秘钥,一个用来加密,一个用来解密,而且公钥是公开的,秘钥是自己保存的,不需要像对称加密那样在通信之前要先同步秘钥。

    非对称加密的缺点是加密和解密花费时间长、速度慢,只适合对少量数据进行加密。

    APP和服务器间传输数据的加密,适合用非对称加密。

相关文章推荐

关于RSA非对称加密在Android应用中的使用

大家好,最近的一个项目中为了防止有人直接提交报文,所以团队打算在报文的传输过程中引入RSA加密的方式,用以防止这种直接通过报文的提交来进行功能的操作。 下面说下项目的背景。项目是一款采用H5架构的A...

openssl 非对称加密DSA,RSA区别与使用介绍

在日常系统管理工作中,需要作一些加解密的工作,通过openssl工具包就能完成我们很多需求! 1. openssl RSA 加解密 RSA是基于数论中大素数的乘积难分解理论上的非对称加...

Java非对称加密源码实例

  • 2016年06月13日 13:32
  • 7KB
  • 下载

rsa_非对称加密_demo

  • 2017年08月08日 11:23
  • 20KB
  • 下载

C# RSA 非对称加密

最近在搞单点登录的设计,在设计中需要一个Token令牌的加密传输,这个令牌在整个连接单点的各个站中起着连接认证作用,如果被仿造将会有不可预计的损失,但是这个Token是要可逆的.然后我就找.net中的...

非对称加密

  • 2016年02月23日 19:44
  • 1.33MB
  • 下载

非对称加密

  • 2016年12月20日 22:14
  • 15KB
  • 下载

JavaScript RSA 非对称加密

使用 JSEncrypt 完成 JavaScript 非对称加密。 假定整个加解密过程中使用的密钥如下。 公钥: -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGS...

C# 非对称加密

  • 2011年12月20日 22:36
  • 523KB
  • 下载

js非对称加密

  • 2016年04月29日 15:03
  • 25KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:APP开发实战42-非对称加密介绍
举报原因:
原因补充:

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