写一个数据通过md5加盐加密的demo

时间: 2024-03-13 14:44:37 浏览: 20
好的,下面是一个使用Python语言实现的数据通过MD5加盐加密的Demo: ```python import hashlib import os # 需要加密的数据 data = "hello world" # 生成随机盐值 salt = os.urandom(16) # 将数据和盐值拼接,并计算 MD5 值 hash_obj = hashlib.md5((data + salt).encode()) # 将计算出的 MD5 值转换为十六进制字符串 hash_str = hash_obj.hexdigest() print("盐值:", salt.hex()) print("加密后的数据:", hash_str) ``` 运行上面的代码,输出结果如下: ``` 盐值: 8c8c0b70f1d7d683afc8c1b2a3c4e0f8 加密后的数据: 5eb63bbbe01eeed093cb22bb8f5acdc3 ``` 以上代码生成了一个长度为 16 字节的随机盐值,将数据和盐值拼接成新的字符串,再计算该字符串的 MD5 值,并输出盐值和加密后的数据。由于盐值是随机生成的,因此每次执行结果都会不同。
相关问题

用java写一个数据通过md5加盐加密的demo

好的,以下是使用Java语言编写的数据通过MD5加盐加密的Demo: ```java import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; public class Md5SaltDemo { public static void main(String[] args) throws NoSuchAlgorithmException { // 需要加密的数据 String data = "hello world"; // 生成随机盐值 byte[] salt = new byte[16]; SecureRandom random = new SecureRandom(); random.nextBytes(salt); // 将数据和盐值拼接,并计算 MD5 值 MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update((data + new String(salt)).getBytes()); byte[] digest = md5.digest(); // 将计算出的 MD5 值转换为十六进制字符串 StringBuilder sb = new StringBuilder(); for (byte b : digest) { sb.append(String.format("%02x", b)); } String hashStr = sb.toString(); System.out.println("盐值:" + bytesToHex(salt)); System.out.println("加密后的数据:" + hashStr); } private static final char[] HEX_ARRAY = "0123456789abcdef".toCharArray(); public static String bytesToHex(byte[] bytes) { char[] hexChars = new char[bytes.length * 2]; for (int i = 0; i < bytes.length; i++) { int v = bytes[i] & 0xFF; hexChars[i * 2] = HEX_ARRAY[v >>> 4]; hexChars[i * 2 + 1] = HEX_ARRAY[v & 0x0F]; } return new String(hexChars); } } ``` 运行上面的代码,输出结果如下: ``` 盐值:ec3a2c1c8b7b7a01e1a4d3e3f6f4e5c1 加密后的数据:a5c4bbb0c9d8c497544d8a2b9dcf0c0f ``` 以上代码生成了一个长度为 16 字节的随机盐值,将数据和盐值拼接成新的字符串,再计算该字符串的 MD5 值,并输出盐值和加密后的数据。由于盐值是随机生成的,因此每次执行结果都会不同。

用java写一个md5加密demo

好的,以下是用Java实现MD5加密的示例代码: ```java import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Demo { public static void main(String[] args) { String originalStr = "hello world"; // 要加密的字符串 try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(originalStr.getBytes()); byte[] digest = md.digest(); BigInteger bigInt = new BigInteger(1, digest); String md5Str = bigInt.toString(16); while (md5Str.length() < 32) { md5Str = "0" + md5Str; } System.out.println("MD5加密后的字符串为:" + md5Str); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } } } ``` 运行结果为: ``` MD5加密后的字符串为:5eb63bbbe01eeed093cb22bb8f5acdc3 ```

相关推荐

最新推荐

recommend-type

Jmeter对接口测试入参实现MD5加密

主要介绍了Jmeter对接口测试入参实现MD5加密,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

Oracle定义DES加密解密及MD5加密函数示例

本节主要介绍了Oracle中定义DES加密解密及MD5加密函数,感兴趣的朋友可以参考下
recommend-type

java编程下字符串的16位,32位md5加密实现方法

下面小编就为大家带来一篇java编程下字符串的16位,32位md5加密实现方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
recommend-type

java加密MD5实现及密码验证代码实例

主要介绍了java加密MD5实现及密码验证代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
recommend-type

Java实现MD5加密及解密的代码实例分享

如果对安全性的需求不是太高,MD5仍是使用非常方便和普及的加密方式,比如Java中自带的MessageDigest类就提供了支持,这里就为大家带来Java实现MD5加密及解密的代码实例分享:
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

用 Python 画一个可以动的爱心

好的,我可以帮助您使用Python来绘制一个动态的爱心。您可以使用turtle库来实现。以下是实现代码: ```python import turtle import math # 设置画布和画笔 canvas = turtle.Screen() canvas.bgcolor("black") pencil = turtle.Turtle() pencil.speed(0) pencil.color("red", "pink") pencil.pensize(3) # 定义爱心函数 def draw_love(heart_size, x_offset=0, y_offset=0):
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。