java中Base64编码解码的编程使用

付费节点推荐


免费节点


节点使用教程


一、密码学

1、密码学算法分类

消息编码:Base64

消息摘要:MD类、SHA类、MAC

对称密码:DES、3DES、AES (参见:java对称密码算法的使用DES/3DES/AES算法

非对称密码:RSA、DH密钥交换

数字签名:RSASignature、DSASignature

2、密码学五元组

(明文,密文,加密算法,解密算法、密钥)

3、对称密码(传统密码)与非对称密码(公钥密码)

对称密码:加解密使用相同密钥的密码体制

非对称密码:加解密使用不同的密钥——公钥与私钥

4、Java程中常用类

1)消息编码

BASE64Encoder、BASE64Decoder

2)消息摘要(参见:消息摘要MD/SHA/HMAC的使用方法 )

MessageDigest

3)对称密码

KeyGenerator、SecretKey、Cipher

4)非对称密码

KeyPairGenerator、KeyFactory、KeyPair、PublicKey、PrivateKey、Cipher

5)数字签名

Signature

二、Base64算法的编程使用

1Base64编码示例

密文:d3d3LmJjb2Rlci5jbg==

明文:www.bcoder.cn

2Base64算法定义

Base64是一种基于64个字符的编码算法,以任意8位字节序列组合的描述形式,这种形式不易直接识别。经Base64编码后的字符串的字符数是以4为单位的整数倍。

3Base64密钥

索引
对应字符
索引
对应字符
索引
对应字符
索引
对应字符
0
A
17
R
34
i
51
z
1
B
18
S
35
j
52
0
2
C
19
T
36
k
53
1
3
D
20
U
37
l
54
2
4
E
21
V
38
m
55
3
5
F
22
W
39
n
56
4
6
G
23
X
40
o
57
5
7
H
24
Y
41
p
58
6
8
I
25
Z
42
q
59
7
9
J
26
a
43
r
60
8
10
K
27
b
44
s
61
9
11
L
28
c
45
t
62
+
12
M
29
d
46
u
63
/
13
N
30
e
47
v
14
O
31
f
48
w
15
P
32
g
49
x
16
Q
33
h
50
y

 

4Base64编程使用

1)加密:

byte[] data = “www.bcoder.cn”.getBytes();

String result = new BASE64Encoder().encode(data);

2)解密:

byte[] result = new BASE64Decoder().decodeBuffer(data);

Base64算法的实际应用

Base64 算法最早应用于解决电子邮件传输的问题,在早期,由于“历史问题”,电子邮件只允许 ASCII 码字符,如果要传送一封带有非 ASCII 码字符的电子邮件,当它通过一些网关的时候就可能出现问题。这个网关很可能会对这个非 ASCII 码字符的二进制位做调整,即将这个非 ASCII 码的 8 位二进制码的最高位置为 0,此用户收到的邮件就会是一封纯粹的乱码邮件,基于这个原因产生了 Base64 算法。

base64

我们在java中要使用base64算法,可以使用sun公司提供的jar包。点击下载

以下是相关代码示例:

Main.java

[cc lang="java"]
import java.io.IOException;
public class Main {

//待加密的明文
public static final String DATA = "jikexueyuan";

public static void main(String[] args) throws Exception {
/* Test Base64 */
String base64Result = Base64Util.encryptBase64(DATA.getBytes());
System.out.println(DATA + " >>>Base64编码>>>" + base64Result);
String base64String = Base64Util.decryptBase64(base64Result);
System.out.println(base64Result + " >>>Base64解码>>>" + base64String);
}

}
[/cc]

Base64Util.java

[cc lang="java"]
import java.io.IOException;

import Decoder.BASE64Decoder;
import Decoder.BASE64Encoder;
public class Base64Util {

public static String encryptBase64(byte[] data){
return new BASE64Encoder().encode(data);
}

public static String decryptBase64(String data) throws IOException{
byte[] resultBytes = new BASE64Decoder().decodeBuffer(data);
return new String(resultBytes);
}

}
[/cc]

 

 

未经允许不得转载:Bcoder资源网 » java中Base64编码解码的编程使用

相关推荐

赞 (0)
分享到:更多 ()

评论 0

评论前必须登录!

登陆 注册
  1. 易路营销软件到此一游!
  2. xiaoxiaoshiping谢谢