forked from MasterFlomaster1/JFXCrypto
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMD2.java
More file actions
61 lines (49 loc) · 1.62 KB
/
Copy pathMD2.java
File metadata and controls
61 lines (49 loc) · 1.62 KB
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
package Hash;
import GUI.AlertDialog;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
class MD2 {
private MessageDigest messageDigest;
MD2() {
try {
messageDigest = MessageDigest.getInstance("MD2");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
String getHashFromText(String text) {
messageDigest.update(text.getBytes());
byte[] digest = messageDigest.digest();
BigInteger bigInt = new BigInteger(1, digest);
StringBuilder md2Hex = new StringBuilder(bigInt.toString(16));
while( md2Hex.length() < 32 ){
md2Hex.insert(0, "0");
}
return md2Hex.toString();
}
String getHashFromFile(File file) {
try {
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int read = 0;
while ((read = fis.read(buffer)) != -1) {
messageDigest.update(buffer, 0, read);
};
fis.close();
byte[] digest = messageDigest.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));
}
return sb.toString();
} catch (IOException e) {
e.printStackTrace();
AlertDialog.showError("Error getting MD2 hash!", e.getMessage());
}
return null;
}
}