md5utils要自己编写吗
时间: 2023-04-12 14:01:50 浏览: 69
答案是不需要。MD5是一种常见的哈希算法,有很多现成的库可以使用,比如Python的hashlib模块、Java的MessageDigest类等。所以,我们不需要自己编写MD5算法,只需要调用现成的库即可。
相关问题
String stringBuffer = new StringBuffer().append(this.this$0.stringFromJNI()).append("2c9e").toString(); String editable = this.mEditText.getText().toString(); if (stringBuffer == null || !stringBuffer.equals(MD5Utils.getMD5(MD5Utils.getMD5(editable)).substring(MD5Utils.getMD5(MD5Utils.getMD5(editable)).length() - 8))) { this.mEditText.setHint("密码错误"); } else { System.exit(0); }写一段以上这段代码的计算方式并注释出来
```
// 从本地方法 stringFromJNI() 获取字符串,并拼接 "2c9e",得到新的字符串
String stringBuffer = new StringBuffer().append(this.this$0.stringFromJNI()).append("2c9e").toString();
// 从 EditText 中获取用户输入的字符串
String editable = this.mEditText.getText().toString();
// 如果获取的字符串为 null,或者经过双重 MD5 加密后的结果不为拼接后字符串的最后8个字符
if (stringBuffer == null || !stringBuffer.equals(MD5Utils.getMD5(MD5Utils.getMD5(editable)).substring(MD5Utils.getMD5(MD5Utils.getMD5(editable)).length() - 8))) {
// 在 EditText 中显示 "密码错误"
this.mEditText.setHint("密码错误");
} else {
// 退出程序
System.exit(0);
}
```
这段代码的计算方式如下:
1. 从 `stringFromJNI()` 获取一个字符串,然后将其与 "2c9e" 字符串拼接起来,得到一个新的字符串。
2. 从 `EditText` 中获取用户输入的字符串。
3. 对用户输入的字符串进行双重 MD5 加密。
4. 如果加密后的结果不等于拼接后字符串的最后8个字符,说明密码错误,将在 `EditText` 中显示 "密码错误"。
5. 如果加密后的结果等于拼接后字符串的最后8个字符,说明密码正确,将退出程序。
用java写一段md5加密算法
以下是使用Java编写MD5加密算法的示例代码:
```java
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class MD5Utils {
public static String encrypt(String input) {
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(input.getBytes());
byte[] digest = md.digest();
StringBuilder sb = new StringBuilder();
for (byte b : digest) {
sb.append(String.format("%02x", b & 0xff));
}
return sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return null;
}
}
}
```
使用示例:
```java
String input = "Hello, World!";
String encrypted = MD5Utils.encrypt(input);
System.out.println(encrypted); // 3e25960a79dbc69b674cd4ec67a72c62
```
注意:MD5算法已经被证明不安全,应该使用更强的加密算法,如SHA-256、SHA-512等。