j9九游会登陆--首页直达

挪动真个加解密
  • 智网科技
  • ###
  • 分类: 履历之谈
  • 阅读量: 141

算法分类

依据加密后果能否可以被解密,算法可以分为可逆加密和不行逆加密(单向加密),从这个意义下去说,单向加密只能称之为加密算法而不是加解密算法。关于可逆加密,又可以依据密钥的的对称性分为对称加密和非对称加密。详细的分类布局如下:

  • 可逆加密

  • 对称加密:DES,3DES,AES,PBE

  • 非对称加密:RSA,DSA,ECC

  • 不行逆加密(单向加密):MD5,SHA,HMAC

密钥介绍

在细致介绍种种加解密算法之前,j9九游会必要对“密钥”这一观点做一下复杂介绍,利便j9九游会对上面内容的睁开。

密钥在加解密算法中是一个参数,其长度依据差别的算法有所差别,统一算法的密钥长度也有大概有差别的要求。一样平常来说,密钥的长度与宁静性成反比。在利用时,将明文(或密文)连同密钥放入响应的加密(或解密容器),即可失掉密文(或明文),完成加解密。

在加密算法降生之初,密钥的情势为对称的,这是说,加密与解密的密钥是相反的。如许是切合j9九游会的头脑习气的。但,这里存在一个题目,便是密钥在通报或保管的历程中假如被盗取,那么黑客是很容易将密文解密取得准确的明文的。对称情势的密钥固然复杂高效,但宁静性不高。

鉴于对称密钥的缺陷,人们又提出了一种新的密钥情势,非对称密钥。非对称密钥的加解密密钥不再相反,而是分为公钥和私钥,公钥用于加密,私钥用于解密。私钥是不公然不传送的,仅仅由通讯两边持有保存;而公钥是可以公然传送的,乃至不担忧丧失,由于即使公钥被盗取,黑客照旧无法将密文解密为明文(这一功效由私钥提供)。可以看到,非对称密钥的宁静性较对称密钥是更好的。

非对称密钥还提供一种功效,即数字署名。经过私钥举行署名,公钥举行认证,到达身份认证的目标。

 必要阐明的是,下面关于密钥的介绍均是基于可逆加密,关于不行逆加密,是不存在密钥观点的。

形式介绍

在细致介绍种种加解密算法之前,j9九游会必要对“形式”这一观点做一下复杂介绍,利便j9九游会对上面内容的睁开。

关于可逆加密,在加密时可以选择加密形式,可以了解为加密算法可以有差别的事情方法,差别的事情方法之间存在服从、方法等方面的区别。要留意的是,对统一个数据,加密选择的形式与解密选择的形式必需相反,不然解密得不到准确的后果。

Android可逆加密的形式次要有四种:ECB (电子暗码本形式)、CBC(分组毗连形式)、CFB(暗码反应形式)、OFB (输入反应形式)。

ECB (电子暗码本形式):

其利用方法是一个明文分组加密成一个密文分组,相反的明文分组永久被加密成相反的密文分组。间接使用加密算法辨别对每个64位明文分组利用相反的64位密钥举行加密。每个明文分组的处置是互相独立的。

缺陷:在给定密钥k 下,统一明文组总是发生统一密文组,这会表露明文组的数据款式。某些明文的数据款式会使得明文组有少量的反复或较长的零串,一些紧张的数据每每会在统一地位呈现,分外是款式化的报头、作业号、发报工夫、所在等特性都将被泄漏到密文之中,使打击者可以使用这些特性。

好处:用同个密钥加密的独自音讯,其后果是没有错误传达。实践上,每一个分组可被看作是用统一个密钥加密的独自音讯。密文中数据出了错,解密时,会使得绝对应的整个明文分组解密错误,但它不会影响其他明文。但是,假如密文中偶然丧失或添加一些数据位,那么整个密文序列将不克不及准确的解密。除非有某帧布局可以重新分列分组的界限。

 CBC(分组毗连形式):

关于相反的明文,加密后果差别。这就加大了暗码破解者的破译难度。在密钥牢固稳定的状况下,改动每个明文组输出的链接技能,如许, 密文组不但与以后的明文组有关,并且经过反应的作用还与曩昔的明文组有关。这从暗码学的实质下去说是一种殽杂操纵。

 好处:能潜伏明文的数据形式; 在某种水平上能避免数据窜改, 诸如明文组的重放,嵌入和删除等.

 缺陷:会呈现错误传达(errorpropagation). 密文中任一位产生变革会触及前面一些密文组. 但CBC 形式的错误传达不大, 一个传输错误至少影响两个音讯组的吸收后果,错误传达最多继续2个分组

CFB(暗码反应形式):

接纳密文反应的形式加强密文之间的相干性。若待加密的音讯必需按字符比特处置时,可接纳CFB。每次加密s bit 明文。(1<= s<= 原来的固有长度)

好处:CFB 形式除有CBC 形式的好处外, 其本身共同的好处是它分外实用于用户数据款式的必要。

缺陷:一是对信道错误较敏感且会形成错误传达。CFB由于接纳的是密文反应,故若某个密文分组在传输中呈现一位或多位的错误,将会惹起以后分组和后续局部分组的解密错误。二是数据加密的速率低落。但这种形式多用于数据网中较低条理, 其数据速率都不太高。

OFB (输入反应形式):

克制了CBC和CFB形式带来的错误传达题目,但对密文被窜改难于举行检测

算法介绍

单向加密

后面说过,单向加密的后果是不行以被解密的,因而,单向加密的次要用处并不是传统意义上的加解密事情,而是对明文数据的失密和择要提取。单向加密次要有MD5、SHA、HMAC等算法。

  • 特点:

  1. 紧缩性:恣意长度的数据,单向加密后长度都是牢固的。

  2. 抗修正性:对原数据举行任何窜改,哪怕只修正1个字节,所失掉的后果都有很大区别。

  3. 弱抗碰撞性:已知原数据和其单向加密后果,想找到一个具有相反后果的数据(即伪造数据)黑白常难的。

  4. 强抗碰撞性:想找到两个差别的数据,使它们具有相反的单向加密后果,黑白常难的。

  5. 复杂高效:对数据举行单向加密处置速率是很快的。

注:上述特点是基于某一特定单向加密算法而言,差别的单向加密算法之间有区别

j9九游会可以看到,单向加密对数据加密后果的分歧性是有较高的包管的,也便是,对一个数据举行加密,想要伪造一个数据去失掉相反的后果,简直是不行能的。同时,由于单向加密速率较快并且加密后果长度肯定,每每将单向加密的后果作为天生可逆加密中密钥的第一个步调,这个j9九游会在后文中会讲到。

  • 使用:

  • 1、数据加密,宁静拜访认证

这是单向加密最普遍的用处。详细来说,便是对用户暗码的掩护。j9九游会在登岸一个网站或使用时,每每必要输出本人的暗码大概要求客户端或欣赏器协助j9九游会保管暗码。但,暗码是不克不及明文传输验证或保管的。这是由于用户每每是一个暗码用于多个网站乃至银行,一旦此中的某一个网站泄漏了用户暗码,那么该用户的其他网站信息也会存在被盗取的大概。因而,一样平常的做法为在用户登录验证或保管暗码时,先对暗码明文做一次单项加密,然后将该后果与办事器真个用户暗码单向加密后果举行比对,假如分歧则容许拜访,不然回绝。比方,2012年QQ的记着暗码功效便是将用户的暗码举行了一次MD5加密,然后存在了当地的数据库中。

大概有读者会心识到,既然单向加密对统一明文的加密后果永久稳定,那么假如用户的暗码稳定,黑客只需拿到加密后的后果就可以随意登岸对应网站了,宁静性又怎样包管呢?的确是如许的。这就要求工程师在设计登岸或保管暗码战略时,只管即便不要走漏加密算法的选择;另一方面,也可以接纳一些分外的手腕来对加密工具举行处置,好比对暗码加“盐”。加盐的头脑会在前面对HMAC的介绍中有所表现。

     2、文件完备性验证,数字署名

偶然候,j9九游会必要对文件大概数据能否被窜改举行确认,用到的便是单向加密技能,次要是基于单向加密的紧缩性、抗修正性和复杂高效性。在这里举一个例子,便于读者了解。有事j9九游会下载了一个镜像之后,会发明下载页面还提供了一组 MD5 值,这组 MD5 值是用来验证文件的分歧性的,当j9九游会下载好镜像之后,必要对该镜像做一次 MD5 的校验,失掉的 MD5 值与下载页面提供的 MD5 值举行比拟,以此来验证该镜像能否被窜改。

  • 宁静性:

单向加密的宁静性次要取决于加密后果的长度,关于统一加密算法,宁静性与加密后果的长度成反比。单向加密是存在被破解的大概的,次要有暴力破解、查字典法破解和社会工学破解等。但破解本钱很高并且必要的工夫较长,假如不是綦重要的数据,简直没有破解的须要。

  • 算法分类:

1、MD5:MD5是使用最普遍的一种单向加密算法,其在数据加密、宁静拜访认证和文件完备性验证等方面都有使用。MD5加密输入是一个128位的十六进制数字串。Android SDK提供了MD5的利用接口,利用时间接挪用即可。示比方下:
 

1
2
3
MessageDigest md5 = MessageDigest.getInstance("MD5"); //取得MD5加密实例 
 md5.update(stringToEncrypt.getBytes());  
 byte[] encrypted = md5.digest();//加密前往值为byte[]数组

 

2、SHA:SHA实践上是一组加密算法的合称,包罗SHA-1,SHA-256,SHA-384,SHA-512。此中使用最广的是SHA-1,HTTPS中利用的HASH散列函数多利用SHA-1。相比力于MD5,SHA族有更高的宁静性,到现在为止还没有人能破译其加密后果,但其加密速率比MD5慢,因此速率调换了宁静性。另一方面,SHA对加密的数占有肯定的长度限定。详细各SHA算法的比力如下表格:

关于SHA算法,Android SDK也提供了响应接口,利便开辟者利用。与MD5相似,以SHA-1为例:
 

1
2
3
MessageDigest sha = MessageDigest.getInstance("SHA-1"); //取得SHA-1加密实例 
 sha.update(stringToEncrypt.getBytes());   
 byte[] encrypted = sha.digest();//加密前往值为byte[]数组

 

3、HMAC:HMAC差别于下面的传统单向加密算法,它的加密情势与可逆加密相反,加密历程必要一个密钥和一个音讯为输出,天生一个音讯择要作为输入。界说HMAC必要一个加密用散列函数(表现为H,可以是MD5大概SHA-1)和一个密钥K。j9九游会用B来表现数据块的字节数。(以上所提到的散列函数的支解数据块字长B=64),用L来表现散列函数的输入数据字节数(MD5中L=16,SHA-1中L=20)。辨别密钥的长度可以是小于即是数据块字长的任何正整数值。使用步伐中利用的密钥长度如果比B大,则起首用利用散列函数H作用于它,然后用H输入的L长度字符串作为在HMAC中实践利用的密钥。一样平常状况下,保举的最小密钥K长度是L个字节。

联合SHA-1的HMAC代码完成如下:
 

1
2
3
SecretKeySpec secret = new SecretKeySpec(key.getBytes(), type);//key为开辟者本人设定的密钥字符串 
Mac mac = Mac.getInstance("HmacSHA1");//SHA-1的HMAC mac.init(secret); 
byte[] digest = mac.doFinal(stringToEncrypt.getBytes());//加密前往值为byte[]数组

 

对称加密

 对称加密算法,使用的工夫比力早,技能绝对来说比力成熟,在对称加密算法中,数据发信方将明文(原始数据)和加密密钥一同颠末特别加密算法处置后,使其酿成庞大的加密密文发送出去。收信方收到密文后,若想解读原文,则必要利用加密用过的密钥及相反算法的逆算法对密文举行解密,才干使其规复成可读明文。在对称加密算法中,利用的密钥只要一个,发收信两边都利用这个密钥对数据举行加密息争密,这就要求解密方事前必需晓得加密密钥。对称加密算法的特点是算法公然、盘算量小。不敷之处是,买卖两边都利用异样钥匙,宁静性得不到包管。

  • 特点:

  1. 密钥较小(一样平常小于256bit),密钥越大,加密越强,但加密解密越慢

  2. 好处:算法公然、盘算量小、加密速率快、加密服从高,实用于少量数据的加密

  3. 缺陷:密钥分派与办理,宁静性较低

  4. 四种算法DES,3DES,AES,PBE

  • 算法:

1.DES: DES算法是一种分组加密机制,将明文分红N个组,然后对各个组举行加密,构成各自的密文,最初把一切的分组密文举行兼并,构成终极的密文。把64位的明文输出块变为64位的密文输入块,它所利用的密钥也是64位。

  • 简介:

DES算法是如许事情的:  

如Mode为加密,则用Key 去把数据Data举行加密, 天生Data的暗码情势(64位)作为DES的输入后果; 如Mode为解密,则用Key去把暗码情势的数据Data解密,复原为Data的密码情势(64位)作为DES的输入后果。

在通讯网络的两头,两边商定分歧的Key, 在通讯的源点用Key对中心数据举行DES加密,然后以暗码情势在大众通讯网(如德律风网)中传输到通讯网络的尽头,数据抵达目标地后,用异样的Key对密 码数据举行解密,便再现了密码情势的中心数据。如许,便包管了中心数据(如PIN、MAC等)在大众通讯网中传输的宁静性和牢靠性。

  • 支持形式:ECB、CBC、CFB、OFB

  • 优缺陷:

(1)DES算法加密解密速率比力快,密钥比力短,加密服从很高但通讯两边都要坚持密钥的秘 密性,为了宁静还必要常常改换DES密钥

(2) 发生密钥复杂,但宁静性完全依赖密钥,密钥必需高度失密,因此难以做到一次一密

  • 使用:DES算法在POS、ATM、磁卡及智能卡(IC卡)、加油站、高速公路免费站等范畴被普遍使用,以此来完成要害数据的失密,如信誉卡持卡人的PIN的加密传输,IC卡与POS间的双向认证、金融买卖数据包的MAC校验等,均用到DES算法。

  • 算法完成:Android的SDK提供了DES的接口,j9九游会可以间接挪用完成。DES算法的入口参数有三个:Key、Data、Mode。此中Key为8个字节共64位,是DES算法的事情密钥;Data也为8个字节64位,是要被加密或被解密的数据;Mode为DES的事情方法,有两种:加密或解密。
     

1
2
3
4
5
6
7
8
9
10
11
12
 加密:  DESKeySpec dks = new DESKeySpec(key);//创立DESKeySpec工具,此中key为64位的密钥  
   SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");//DES密钥工场实例  
   SecretKey securekey = keyFactory.generateSecret(dks);  
   Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");//密钥容器的实例。传入的参数顺次为加密算法,加密形式,添补形式(可选NOPadding,PKCS5Padding,PKCS7Padding)  
   cipher.init(Cipher.ENCRYPT_MODE, securekey);//初始化密钥容器。加密时第一个参数必需是Cipher.ENCRYPT_MODE  byte[] encryptResult=cipher.doFinal(stringToEncrypt.getBytes()); 
   
 解密:  DESKeySpec dks = new DESKeySpec(key);//key必需与加密时坚持分歧   
     SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");  
     SecretKey securekey = keyFactory.generateSecret(dks);  
     Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");//传入的参数必需与加密时坚持分歧  
     cipher.init(Cipher.DECRYPT_MODE, securekey);//解密时第一个参数必需是Cipher.DECRYPT_MODE  
     byte[] decryptResult=cipher.doFinal(encryptResult.getBytes());

 

2.3DES:3DES算法是在DES的底子上开展出来的。在一些对宁静性要求较高的场景下,DES的64位密钥宁静性不克不及满意要求,于是人们接纳了一种“复杂暴力”的措施——三重数据加密,对数据举行加密,如许来说,破解的概率就小了许多。3DES的密钥长度为168位。由于3DES与DES的利用极端类似,只是密钥的长度有所改动,这里就不睁开介绍了,感兴味的读者可以实验利用响应接口。

3.AES:

  • 简介:AES 加密算法作为新一代的数据加密尺度会聚了强宁静性、高功能、高服从、易用和机动等好处。AES 设计有三个密钥长度:128,192,256 位。是现在可取得的最宁静的加密算法。

  • 支持形式:CFB/OFB/ECB/CBC

  • 优缺陷:AES各方面均优于其他对称加密算法,缺陷也只在于对称加密的范围。

  • 使用:AES的使用非常普遍,与DES是对称加密中的主流利用算法,并有渐渐代替DES的趋向。

  • 代码完成:
     

1
2
3
4
5
6
7
8
9
10
11
加密:  
SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey();//取得密钥实例  
cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//密钥容器的实例。传入的参数顺次为加密算法,加密形式,添补形式(可选NOPadding,PKCS5Padding,PKCS7Padding)  
cipher.init(Cipher.ENCRYPT_MODE, secretKey);//利用加密形式初始化 密钥容器  
byte[] encryptResult = cipher.doFinal(stringToEncrypt.getBytes());  
 
解密:  
 SecretKey secretKey = KeyGenerator.getInstance("AES").generateKey();//密钥必需与加密时坚持分歧 
 Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//传入的参数必需与加密时坚持分歧 
 cipher.init(Cipher.DECRYPT_MODE, secretKey);//解密时必需是Cipher.DECRYPT_MODE 
  byte[] decryptResult=cipher.doFinal(encryptResult.getBytes());

 

4.PBE:PBE算法利用的场景并未几,j9九游会不用拘泥于它的利用和完成,但它提供了一种加密头脑是值得j9九游会学习参考的——加“盐”扰乱。

“加盐”介绍:后面j9九游会曾说到,对称加密很大的一个宁静缺陷便是加密解密利用相反的密钥,这种密钥的稳定性给密钥的宁静传输和贮存形成了很大的题目。那么有没有措施办理这个题目呢?一个措施便是给密钥加“盐”。这里的“盐”可以是随机数、用户ID、地位天文信息等等。“盐”最紧张的作用便是对密钥的扰乱,使黑客无法确定真实的密钥,只需通讯两边商定“盐”的情势,而且不走漏,就能包管加密的宁静性。j9九游会经过PBE加盐的方法来理解加“盐”的头脑:

PBE加密起首用口令代替了密钥的观点。在加密时,PBE并不是利用口令间接加密,而是利用算法中的KDF函数经过“盐”对口令举行扰乱天生准密钥,然后利用一种散列函数屡次迭代天生终极的密钥,密钥天生后,PBE在选用对称加密算法对数据举行加密。

详细的完成可以是如许的:

1、音讯通报两边商定口令,这里甲方构建口令 2、甲方构建口令后,发布给乙方 3、由口令构建方(甲方)构建本次音讯通报利用的盐,实在也可以两边商定一个数据,比方硬盘号,明天的日期等等,纷歧定非要写个宁静算法盘算出来,只需两边分歧就行 4、甲方利用口令、盐对数据加密 5、甲方将盐、加密数据发送给音讯吸收者(乙方) 6、乙方用收到的口令、盐(可以是商定的数据)对数据举行解密

 j9九游会可以看到,对密钥加“盐”实践上是一种殽杂扰乱的手腕。但j9九游会还可以从PBE的加盐头脑中抽取出一种更复杂的了解,“盐”便是密钥的一局部,只不外这一局部密钥是通讯两边在通讯之前就协商好的不被外界所晓得的,通讯历程中,两边只需传输另一局部非盐密钥即可,即便非盐密钥被截获,黑客也无法拿到整个密钥破解密文。

非对称加密

 非对称加密算法必要两个密钥来举行加密息争密,辨别是公钥和私钥,必要留意的一点,这个公钥和私钥必需是一对的,假如用公钥对数据举行加密,那么只要利用对应的私钥才干解密,反之亦然。非对称加密算法的呈现,便是为理解决只要一把密钥的加解密,只需这一把密钥丧失大概被公然,那么加密数据就很容易被打击。同时,也正是由于非对称加密算法的呈现,才有了前面的数字署名、数字证书等等。

  • 特点:算法强度庞大、宁静性依赖于算法与密钥但由于其算法庞大,而使得加密解密速率没有对称加密解密的速率快。

  • 利用:非对称加密次要有两种利用方面:加解密和数字署名验证。

公钥加密,私钥解密;私钥署名,公钥验证

次要说一下数字署名:

数字署名接纳公然密钥算法完成,数字署名与通常的数据加密算法作用是差别的,它们的完成历程与利用的密钥差别。数字署名利用的是发送方的密钥对,发送方用本人的公有密钥举行加密,吸收方用发送方的公然密钥举行解密。数字署名是为了证明信息的确是由某个用户发送,对网络中能否有人看到该信息并不体贴。 数据加密利用的是承受方的密钥对,发送方用吸收方的公然密钥举行加密,承受方用本人的公有密钥举行解密。加密是一个多对一的干系:任何晓得承受方公然密钥的人都可以向吸收方发送加密信息,只要拥有吸收方公有密钥的人才干对信息解密。一个用户通常有两个密钥对,一个用来对数字署名举行加密解密,一个用来对私密密钥举行加密解密。

  • 算法:

1.RSA:RSA是企业级使用尺度,许多第三方的加密软件利用RSA 2048bit加密

  • 好处:暗码分派复杂,宁静保证性高

  • 缺陷:

1.速率慢,RSA最快的状况也比DES慢上好几倍,RSA的速率比对应异样宁静级另外对称暗码算法要慢1000倍左右

2.一样平常来说只用于大批数据加密

3.发生密钥很贫苦,遭到素数发生技能的限定,因此难以做到一次一密。

实践上,这些缺陷黑白对称加密自己的范围。

  • 算法完成:
     

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
  KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");//发生RSA密钥对发生器
  kpg.initialize(2048);//密钥对发生器初始化,参数为密钥长度,可选长度 512 1024 2048
  KeyPair kp = kpg.genKeyPair();//失掉密钥对
  PublicKey publicKey = kp.getPublic();//公钥
  PrivateKey privateKey = kp.getPrivate();//私钥 
  
  加密:
  BigInteger e = publicKey.getPublicExponent();//获取参数
  BigInteger n = publicKey.getModulus();//获取参数
  BigInteger m = new BigInteger(stringToEncrypt.getBytes());
  BigInteger c = m.modPow(e, n);//盘算密文C
  
  解密:
  BigInteger c = new BigInteger(stringToDecrypt);
  BigInteger d = privateKey.getPrivateExponent();//获取参数
  BigInteger n = privateKey.getModulus();//获取参数
  BigInteger m = c.modPow(d, n);//盘算解密后果m

 

2.DSA:一样平常用于数字署名和认证,在DSA数字署名和认证中,发送者利用本人的私钥对文件或音讯举行署名,承受者收到音讯后利用发送者的公钥来验证署名的真实性。DSA只是一种算法,和RSA差别之处在于它不克不及用作加密息争密,也不克不及举行密钥互换,只用于署名,它比RSA要快许多。

  • 好处:宁静性与RSA相近,发生密钥速率比RSA快许多

  • 缺陷:假如利用DSA作为数字署名的加密算法,则只能利用SHA1作为音讯散列(即音讯择要)算法。 而假如利用RSA作为数字署名加密算法,抵消息择要算规则会有多种选择

  • 算法完成:由于DSA次要用于数字署名认证,不必于加解密事情,这里就不写加解密代码的详细完成了。

3.ECC:ECC是一种高效的非对称加密算法,常常利用于挪动设置装备摆设上。

  • 好处:ECC 与 RSA 相比,有以下的好处:

(1)相反密钥长度下,宁静功能更高,如160位ECC曾经与1024位RSA、DSA有相反的宁静强度。

(2)盘算量小,处置速率快,在私钥的处置速率上(解密和署名),ECC远 比RSA、DSA快得多。

(3)存储空间占用小 ECC的密钥尺寸和体系参数与RSA、DSA相比要小得多, 以是占用的存储空间小得多。

(4)带宽要求低使得ECC具有普遍得使用远景。

  • 算法完成:ECC与RSA有着类似的特征,它们的代码完成也非常类似,只是在发生密钥对发生器时有所区别,别的地方没有差异,因而这里不写代码完成。有必要的读者可以参照下面RSA的完成。

总结

到这里,j9九游会对三大类算法的介绍就完毕了。可以看到,差别算法有着差别的特点特征,开辟者在选择利用时必要联合思索利用场景、需求、本钱等各个方面的要素。关于单向加密与可逆加密,开辟者很容易区别选择;但关于对称加密与非对称加密,选择大概就不是很容易决断了,这里,j9九游会提供一种思绪,也是被普遍采取利用的——由于对称加密速率快但绝对宁静性低,非对称加密宁静性高但速率绝对慢——j9九游会利用对称加密对少量的数据明文做加密,然后利用非对称加密对对称加密密钥举行加密,如许就分身了速率与宁静的题目。