@@ -350,21 +350,21 @@ byte[] bytes = data.getBytes();//内容为:49 50 51 52 97 98 99 100
350350
351351### ** 对称加密应用场景**
352352
353- - 本地数据加密(例如加密android 里SharedPreferences 里面的某些敏感数据)
353+ - 本地数据加密(例如加密Android 里SharedPreferences 里面的某些敏感数据)
354354- 网络传输:登录接口post 请求参数加密{username=lisi,pwd=oJYa4i9VASRoxVLh75wPCg==}
355- - 加密用户登录结果信息并序列化到本地磁盘(将user 对象序列化到本地磁盘,下次登录时反序列化到内存里)
355+ - 加密用户登录结果信息并序列化到本地磁盘(将User 对象序列化到本地磁盘,下次登录时反序列化到内存里)
356356- 网页交互数据加密(即后面学到的Https)
357357
358358### ** DES算法代码实现**
359359
360360``` java
361- // 1, 得到cipher 对象(可翻译为密码器或密码系统)
361+ // 1. 得到cipher 对象(可翻译为密码器或密码系统)
362362 Cipher cipher = Cipher . getInstance(" DES" );
363- // 2, 创建秘钥
363+ // 2. 创建秘钥
364364 SecretKey key = KeyGenerator . getInstance(" DES" ). generateKey();
365- // 3, 设置操作模式(加密/解密)
365+ // 3. 设置操作模式(加密/解密)
366366 cipher. init(Cipher . ENCRYPT_MODE , key);
367- // 4, 执行操作
367+ // 4. 执行操作
368368 byte [] result = cipher. doFinal(" 黑马" . getBytes());
369369```
370370###** AES 算法代码实现**
@@ -434,7 +434,7 @@ cipher.init(Cipher.DECRYPT_MODE, secretKey);
434434```
435435### ** 注意事项**
436436
437- 把秘钥写在代码里有一定风险,当别人反编译代码的时候,可能会看到秘钥,android 开发里建议用JNI 把秘钥值写到C 代码里,甚至拆分成几份,最后再组合成真正的秘钥
437+ 把秘钥写在代码里有一定风险,当别人反编译代码的时候,可能会看到秘钥,Android 开发里建议用JNI 把秘钥值写到C 代码里,甚至拆分成几份,最后再组合成真正的秘钥
438438
439439### ** 算法/工作模式/填充模式**
440440
@@ -493,8 +493,8 @@ cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
493493
494494## 3. 总结
495495
496- DES 安全度在现代已经不够高,后来又出现的3DES 算法强度提高了很多,但是其执行效率低下,AES算法加密强度大,执行效率高,使用简单,实际开发中建议选择AES 算法。实际android 开发中可以用对称加密(例如选择AES 算法)来解决很多问题,例如:
496+ DES 安全度在现代已经不够高,后来又出现的3DES 算法强度提高了很多,但是其执行效率低下,AES算法加密强度大,执行效率高,使用简单,实际开发中建议选择AES 算法。实际Android 开发中可以用对称加密(例如选择AES 算法)来解决很多问题,例如:
497497
498- - 做一个管理密码的app ,我们在不同的网站里使用不同账号密码,很难记住,想做个app 统一管理,但是账号密码保存在手机里,一旦丢失了容易造成安全隐患,所以需要一种加密算法,将账号密码信息加密起来保管,这时候如果使用对称加密算法,将数据进行加密,秘钥我们自己记在心里,只需要记住一个密码。需要的时候可以还原信息。
499- - android 里需要把一些敏感数据保存到SharedPrefrence 里的时候,也可以使用对称加密,这样可以在需要的时候还原。
498+ - 做一个管理密码的App ,我们在不同的网站里使用不同账号密码,很难记住,想做个app 统一管理,但是账号密码保存在手机里,一旦丢失了容易造成安全隐患,所以需要一种加密算法,将账号密码信息加密起来保管,这时候如果使用对称加密算法,将数据进行加密,秘钥我们自己记在心里,只需要记住一个密码。需要的时候可以还原信息。
499+ - Android 里需要把一些敏感数据保存到SharedPrefrence 里的时候,也可以使用对称加密,这样可以在需要的时候还原。
500500- 请求网络接口的时候,我们需要上传一些敏感数据,同样也可以使用对称加密,服务端使用同样的算法就可以解密。或者服务端需要给客户端传递数据,同样也可以先加密,然后客户端使用同样算法解密。
0 commit comments