在Android中须要对各类数据进行加密的操做,好比用户短信备份的数据加密、用户帐户登录的密码加密以及应用于服务器链接传递重要数据的加密,用处很是的多
这里介绍一下MD5加密:java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
public
class
MD5Utils {
// 进行md5的加密运算
public
static
String encode(String password) {
// MessageDigest专门用于加密的类
try
{
MessageDigest messageDigest = MessageDigest.getInstance(
"MD5"
);
byte
[] result = messageDigest.digest(password.getBytes());
// 获得加密后的字符组数
StringBuffer sb =
new
StringBuffer();
for
(
byte
b : result) {
int
num = b &
0xff
;
// 这里的是为了将本来是byte型的数向上提高为int型,从而使得本来的负数转为了正数
String hex = Integer.toHexString(num);
//这里将int型的数直接转换成16进制表示
//16进制多是为1的长度,这种状况下,须要在前面补0,
if
(hex.length() ==
1
) {
sb.append(
0
);
}
sb.append(hex);
}
return
sb.toString();
}
catch
(NoSuchAlgorithmException e) {
e.printStackTrace();
return
null
;
}
}
}
|
MD5的加密实现方式是被谷歌屏蔽起来的,因此这只能想黑盒子测试同样去了解它的做用,那么这里是将传入的字符串转换成16位16进制的字符串从而起到加密的做用,中间对于&0Xff也已经作出了解释。这里顺便记录一下java的基础知识,不用真的还比较容易忘记。数组
java 8大基本数据类型:服务器
类型 长度(字节为单位,一个字节是8位也就是0000 0000,若是是字就是16位 0000 0000 0000 0000)
boolean–>1
char–>2app
byte–>1
short–>2
int–>4
long–>8测试
float–>4
double–>8
加密
PS:在java中,有一个字符串的操做spa
1
2
3
4
5
6
7
8
9
10
|
public
void
test3()
{
<span style=
"text-decoration: underline;"
>String</span> password =
"1203"
;
byte
[] bytes = password.getBytes();
for
(
byte
b: bytes)
{
System.out.println(b);
}
}
|
须要作出的基本解释,就是这里java会将字符串中的内容转换成字节数组进行输出,规律以下:code