登陆 | 注册 设为首页 | 加入收藏 | 联系我们
太和养老网
热词老年艺术  助老机构  养老系统  

中心区域北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 香港 澳门 台湾 全国城市养老院目录 全国县市养老院汇总目录 太和AI作品展 太和养老艺术网AI作品展示

安卓项目实战之:Android常用的5种加密方

 

2023/7/6 17:11:02 ('互联网')

前言

按加密结果是否可以被解密分为可逆和不可逆:

1,不可逆:

MD5(Message-Digest消息摘要):不可逆,长度固定(32位),容易计算,仅一字节只差加密结果都会有很大区别

通常情况下为了让加密过程变得不可预测,我们会进行加盐操作。

SHA:安全散列算法,数字签名工具 , 长度比MD5要长,所以更安全,但是加密的效率要比MD5慢一些.

2,可逆:

按秘钥数量和加密规则分为:对称加密和非对称加密

1,对称加密:即通过key加密,也可以通过key来解密

优点:算法公开、计算量小、加密速度快、加密效率高 缺点:双方都使用同样的密钥,密钥可以自己指定,并且只有一把,如果密钥泄漏数据就会被解密

DES,AES

高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。 这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用,Android 中的AES 加密 秘钥 key 必须为16/24/32位字节,否则抛异常。

2,非对称加密:如RSA加密算法公钥加密只能私钥解密,私钥加密也只能公钥解密

RSA :他有两把密钥,且是由程序生成的,不能自己指定;

特点是加密速度比较慢,但是安全性比较高;

加密和解密的规则是:公钥加密只能私钥解密,私钥加密只能公钥解密;

RSA对加密数据的长度有限制,一般为密钥的长度值-11,要加密较长的数据,可以采用数据截取的方法,分段加密。

RSA算法是最流行的公钥密码算法,使用长度可以变化的密钥。RSA是第一个既能用于数据加密也能用于数字签名的算法。

MD5加密

使用场景:

1.验证密码:只要算法不变,就能和服务器上的MD5匹配;

2.文件完整性的校验:当下载一个文件时,服务器返回的信息包括这个文件的md5,在本地下载完毕时进行md5加密,将两个md5值进行比较,如果一致则说明文件完整没有丢包现象。

/**

* 使用md5方式进行加密

* @return

*/

public static String digest(String content){

StringBuilder builder = new StringBuilder();

try {

MessageDigest msgDitest = MessageDigest.getInstance( MD5

msgDitest.update(content.getBytes());

byte[] digests = msgDitest.digest();

//将每个字节转为16进制

for (int i=0;i digests.length;i++){

builder.append(Integer.toHexString(digests[i] 0xff +8));//+8为加盐操作

}

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

return builder.toString();

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

SHA:

著名的图片加载框架Glide在缓存key时就采用的此加密

文件的秒传功能,以及相同的v4包冲突都是可以根据sha1值进行比对的

/**

* 使用sha-1方式进行加密

* @return

*/

public static String digest(String content){

StringBuilder builder = new StringBuilder();

try {

MessageDigest msgDitest = MessageDigest.getInstance( SHA-1

msgDitest.update(content.getBytes());

byte[] digests = msgDitest.digest();

//将每个字节转为16进制

for (int i=0;i digests.length;i++){

builder.append(Integer.toHexString(digests[i] 0xff +8));//+8为加盐操作

}

} catch (NoSuchAlgorithmException e) {

e.printStackTrace();

}

return builder.toString();

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

DES

String data = 我是俊哥

String desKey = 青龙偃月刀 // 密钥,口号

boolean isDesEncrypt = false;

private void useDes() {

try {

if(isDesEncrypt){

//解密

text.setText(Des.decrypt(text.getText().toString(), desKey));

}else {

//加密

text.setText(Des.encrypt(data, desKey));

}

isDesEncrypt = !isDesEncrypt;

} catch (Exception e) {

e.printStackTrace();

}

}

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

AES

AES加密是一种高级加密标准,是一种区块加密标准。它是一个对称密码,就是说加密和解密用相同的密钥。WPA/WPA2经常用的加密方式就是AES加密算法。

public class AESUtils3 {

/* 算法/模式/填充 */

private static final String CipherMode = AES/ECB/PKCS5Padding

/* 创建密钥 */

private static SecretKeySpec createKey(String password) {

byte[] data = null;

if (password == null) {

password =

}

StringBuffer sb = new StringBuffer(32);

sb.append(password);

while (sb.length() 32) {

sb.append( 0

}

if (sb.length() 32) {

sb.setLength(32);

}

try {



扫码加微信详细咨询太和智慧养老产品和平台服务!

 

 





版权声明:

---------------------------------------------------------------


所有信息来源于互联网,本文的版权归原作者所有,不代表本网观点和立场。

本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 81480447@qq.com 举报,一经查实,本站将立刻删除。



扫码加微信详细咨询太和智慧养老产品和平台服务!

 

养老资讯
助老机构介绍
评论
已有 0 条评论

最新评论

推荐养老院

您希望养老院位于
  • 不限
  • 东城
  • 西城
  • 崇文
  • 宣武
  • 朝阳
  • 丰台
  • 石景山
  • 海淀
  • 门头沟
  • 房山
  • 通州
  • 顺义
  • 昌平
  • 大兴
  • 怀柔
  • 平谷
  • 延庆
  • 密云
您希望的价格范围
  • 不限
  • 500以下
  • 500-1000
  • 1000-2000
  • 2000-3000
  • 3000-5000
  • 5000以上
老人的情况是
  • 不限
  • 自理
  • 半自理
  • 全护理
  • 特护

姓名

年龄

电话

全国城市养老院



关于我们 | 联系方式 | 网站地图 | 友情链接

Copyright 2010-2022 京ICP备18035644号-3 北京太和 版权所有