ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

md5加密- java与python的区别

2022-05-01 01:03:56  阅读:201  来源: 互联网

标签:obj name java python import md5 加密


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);
        }
    }
}

标签:obj,name,java,python,import,md5,加密
来源: https://www.cnblogs.com/zhiqianggege/p/16211978.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有