本文主要是介绍md5加密- java与python的区别,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
python的md5加密
import hashlib
name = '哈喽啊'
obj = hashlib.md5()
# md5加盐
obj.update('xxx'.encode('utf-8'))
# md5加密
obj.update(name.encode('utf-8'))
# 获取加密后的数据,以字节的形式展示,
data = obj.digest()
print(data) # b'\x1c\x7f\xd2\x051\x87\xb2\x88\xe7\xfc\xb9\x8e\xf9\x9a\x94\xe1'
# 获取加密后的数据,以字符串的形式展示,本质是将 data 以16进制展示
res = obj.hexdigest()
print(res) # 1c7fd2053187b288e7fcb98ef99a94e1
java的md5加密:
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import java.util.Base64;
public class Hello {
public static void main(String[] args) throws NegativeArraySizeException {
String name = "哈喽啊";
try {
MessageDigest instance = MessageDigest.getInstance("MD5");
// md5的加盐
instance.update("xxx".getBytes());
// md5加密的字节数组
byte[] nameBytes = instance.digest(name.getBytes());
System.out.println(Arrays.toString(nameBytes));// 打印结果:[28, 127, -46, 5, 49, -121, -78, -120, -25, -4, -71, -114, -7, -102, -108, -31]
String res = new String(nameBytes);
System.out.println(res);
//创建一个可变字符串 sb
StringBuilder sb = new StringBuilder();
for (int i=0;i<nameBytes.length;i++){
int val = nameBytes[i] & 255; //将负数转换成整数
if (val < 16) {
sb.append("0");
}
// 将val转换成16进制,再添加到sb这个可变的字符串中
sb.append(Integer.toHexString(val));
}
//再将可变的字符串sb ,转换成不可变的字符串
String hexData = sb.toString();
System.out.println(hexData); // 打印结果:1c7fd2053187b288e7fcb98ef99a94e1
}catch (Exception e){
System.out.println(e);
}
}
}
这篇关于md5加密- java与python的区别的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!