0%

Java加密工具类

导包

maven依赖

1
2
3
4
5
6
7
8
9
10
11
<!-- jdk-->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</dependency>
<!-- bc -->
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.58</version>
</dependency>

代码示例

MD5加密算法 示例

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package top.lrshuai.blog.util;

import java.security.MessageDigest;
import java.security.Security;

import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD4Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class MDUtil {
private static String key = "www.lrshuai.top";

public static String jdkMD5() throws Exception{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] mdbyte = md.digest(key.getBytes());
return Hex.encodeHexString(mdbyte);
}
public static String jdkMD2() throws Exception{
MessageDigest md = MessageDigest.getInstance("MD2");
byte[] mdbyte = md.digest(key.getBytes());
return Hex.encodeHexString(mdbyte);
}

public static String bcMD4() throws Exception{
Security.addProvider(new BouncyCastleProvider());
MessageDigest md = MessageDigest.getInstance("MD4");
byte[] mdbyte = md.digest(key.getBytes());
return Hex.encodeHexString(mdbyte);
}

public static String bcMD4Two() throws Exception{
Digest digest = new MD4Digest();
digest.update(key.getBytes(), 0,key.getBytes().length);
byte[] bcbtyte = new byte[digest.getDigestSize()];
digest.doFinal(bcbtyte, 0);
return org.bouncycastle.util.encoders.Hex.toHexString(bcbtyte);
}

public static String bcMD5() throws Exception{
Digest digest = new MD5Digest();
digest.update(key.getBytes(), 0,key.getBytes().length);
byte[] bcbtyte = new byte[digest.getDigestSize()];
digest.doFinal(bcbtyte, 0);
return org.bouncycastle.util.encoders.Hex.toHexString(bcbtyte);
}

public static String ccMD5() {
return DigestUtils.md5Hex(key.getBytes());
}

public static String ccMD2() {
return DigestUtils.md2Hex(key.getBytes());
}

public static void main(String[] args) throws Exception {
System.out.println(jdkMD5());
System.out.println(jdkMD2());
System.out.println(bcMD4());
System.out.println(bcMD4Two());
System.out.println(bcMD5());
System.out.println(ccMD5());
System.out.println(ccMD2());
}
}

SHA1加密算法 示例

SHA 分为

SHA1

SHA2

SHA2又分有 SHA-224、SHA-256、SHA-384,和SHA-512。

所以SHA 的算法可以说有5种

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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
package top.lrshuai.blog.util;

import java.security.MessageDigest;
import java.security.Security;

import org.apache.commons.codec.binary.Hex;
import org.apache.commons.codec.digest.DigestUtils;
import org.bouncycastle.crypto.Digest;
import org.bouncycastle.crypto.digests.MD4Digest;
import org.bouncycastle.crypto.digests.MD5Digest;
import org.bouncycastle.crypto.digests.SHA1Digest;
import org.bouncycastle.crypto.digests.SHA224Digest;
import org.bouncycastle.jce.provider.BouncyCastleProvider;

public class SHAUtil {
private static String key = "www.lrshuai.top";

public static String jdkSHA1() throws Exception{
MessageDigest md = MessageDigest.getInstance("SHA");
md.update(key.getBytes());
return Hex.encodeHexString(md.digest());
}


public static String bcSHA1() throws Exception{
Digest digest = new SHA1Digest();
digest.update(key.getBytes(), 0,key.getBytes().length);
byte[] shabtyte = new byte[digest.getDigestSize()];
digest.doFinal(shabtyte, 0);
return org.bouncycastle.util.encoders.Hex.toHexString(shabtyte);
}
public static String bcSHA224() throws Exception{
Digest digest = new SHA224Digest();
digest.update(key.getBytes(), 0,key.getBytes().length);
byte[] shabtyte = new byte[digest.getDigestSize()];
digest.doFinal(shabtyte, 0);
return org.bouncycastle.util.encoders.Hex.toHexString(shabtyte);
}

public static String bcSHA224Two() throws Exception{
Security.addProvider(new BouncyCastleProvider());
MessageDigest md = MessageDigest.getInstance("SHA-224");
md.update(key.getBytes());
return Hex.encodeHexString(md.digest());
}


public static String ccSHA1() {
return DigestUtils.sha1Hex(key.getBytes());
}

public static String ccSHA2() {
return DigestUtils.shaHex(key);
}

public static void main(String[] args) throws Exception {
System.out.println(jdkSHA1());
System.out.println(bcSHA1());
System.out.println(bcSHA224());
System.out.println(bcSHA224Two());
}
}

您的打赏,是我创作的动力!不给钱?那我只能靠想象力充饥了。