在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