md5加密

MD5加密(JAVA&JS)

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-05 15:12:11
JAVA: package mydemo; import java.security.MessageDigest; public class MD5Utils { /*** * * MD5加码 生成32位md5码 */ public static String string2MD5(String inStr) { MessageDigest md5 = null; try { md5 = MessageDigest.getInstance("MD5"); } catch (Exception e) { System.out.println(e.toString()); e.printStackTrace(); return ""; } char[] charArray = inStr.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Bytes = md5.digest(byteArray); StringBuffer hexValue = new StringBuffer(); for (int i = 0; i <

模块进阶(一)

亡梦爱人 提交于 2019-12-05 01:12:25
1、OS模块 os模块是与操作系统交互的模块 下面主要以例说明讲解: import os # 需求:获取当前项目的根目 # 获取当前文件的上一层 DAY15_PATH = os.path.dirname( __file__ ) # /Users/tophan/python练习/day15 # print(DAY15_PATH) # #项目的根目录、路径相关的值都用'常量' # BASE_PATH = os.path.dirname(DAY15_PATH) #/Users/tophan/python练习 # print(BASE_PATH) # 路径的拼接:拼接文件'绝对路径' TEST_PATH = os.path.join(DAY15_PATH, '火影写真.txt') # /Users/tophan/python练习/day15/老男孩教师写真.txt print(TEST_PATH) # 判断'文件/文件夹'是否存在:若文件存在返回True,若不存在返回False print(os.path.exists(TEST_PATH))# True print(os.path.exists(DAY15_PATH)) # True #判断'文件夹'是否存在 print(os.path.isdir(TEST_PATH)) #这里是文件,所以False print(os.path

hashlib加密模块

一笑奈何 提交于 2019-12-05 01:06:27
常用模块之 hashlib(加密模块) hashlib是一个加密模块,内置了很多算法 MD5(*******): 不可解密的算法(2018年以前) 摘要算法: - 摘要是从某个内容中获取的加密字符串 - 摘要一样,内容就一定一样: 保证唯一性 密文密码就是一个摘要 常用方法 import hashlib md5_obj = hashlib.md5() print(type(md5_obj)) def pwd_md5(pwd): md5_obj = hashlib.md5() print(type(md5_obj)) str1 = pwd md5_obj.update(str1.encode('utf-8')) sal = '狗比胡晨阳' md5_obj.update(sal.encode('utf-8')) res = md5_obj.hexdigest() print(res) return res # user_str1 = f'bing:1234' # user_str2 = f'bing:{res}' # with open('user.txt', 'w', encoding='utf-8')as f: # f.write(user_str2) with open('user.txt', 'r',encoding='utf-8')as f: user_str = f

MD5 加盐加密

99封情书 提交于 2019-12-05 00:50:49
一、概述   MD5(Message Digest Algorithm 5),是一种散列算法,是不可逆的,即通过md5加密之后没办法得到原文,没有解密算法。   在一般的项目中都会有登录注册功能,最简单的,登录注册过程完全没有加密,存储在数据库的密码也是明文,安全性是很差的,万一数据泄露就不好了(表一)。所以,通过MD5将密码加密后保存在数据库中(表二),在登录的过程中后端将从前端获取到的密码加密,对照数据库中已经加密的密码。   但是一般加密算法固定,很容易破解,安全系数低,就我所知,有很多网站可以直接破解密文。为了提高安全性,可以采取加盐的方式。生成一组随机串,保存在数据库中,然后混杂在原来的密码中,再通过加密算法加密,存进数据库中(表三)。                     表一                               表二                               表三   至于MD5加密算法的底层原理,参考这篇博客: https://blog.csdn.net/sinat_27933301/article/details/79538169 二、代码实现   Java有挺多关于MD5加密的方法,这里就用Spring中的 DigestUtils.md5DigestAsHex() 实现。 public class MD5Util {

java学习-MD5消息摘要算法

≯℡__Kan透↙ 提交于 2019-12-04 20:53:50
现在项目,用户注册登录部分很少有涉及到了,原因:现在热门开发框架都已经在底层帮我们做了一套用户注册,密码加密,登录认证,权限控制,缓存数据等基本功能。 这有利于项目的快速完成,只需要搬砖码畜们专注于业务逻辑,会利用底层的业务逻辑就行了。这些快速开发框架的出现,也降低了我们java行业的就业门槛,但这不利于我们个人的成长(个人竞争力的体现不能只是会写业务逻辑代码,需要的是拥有绝对的技术壁垒,你有我优,你无我有!) 实际过程中使用过md5和sha1消息摘要算法,也看别人用过spring security的BCryptPasswordEncoder sha1算法介绍及代码: java学习-sha1散列算法 bit:比特或位 byte:字节 sha1消息摘要后得到的是byte[] bytes=new byte[20] ,即20字节长度,160位(20byte * 8=160)二进制长度,  40(20byte * 2=40,一个byte转为一个的十六进制)个十六进制字符串长度的数据 MD5算法介绍及代码: java学习-MD5消息摘要算法 MD5得到的是 128位,16字节长度, 32个十六进制字符串长度的数据。 BCryptPasswordEncoder 这个spring security的密码加密算法,对相同密码加密每次得到的加密字符串都是不一样的。这个框架自定义hash加密方法

hashlib模块

本小妞迷上赌 提交于 2019-12-04 20:35:09
hashlib模块 hashlib是一个加密模块: 内置了很多算法 - MD5(*******): 不可解密的算法(2018年以前) 摘要算法: - 摘要是从某个内容中获取的加密字符串 - 摘要一样,内容就一定一样: 保证唯一性 - 密文密码就是一个摘要hash算法其实可以看成如下图所示的一座工厂,工厂接收你送来的原材料,经过加工返回的产品就是hash值 import hashlib md5_obj = hashlib.md5() print(type(md5_obj)) str1 = '1234' # update中一定要传入bytes类型数据 md5_obj.update(str1.encode('utf-8')) # # 得到一个加密后的字符串 res = md5_obj.hexdigest() # 202cb962ac59075b964b07152d234b70 print(res) 撞库破解hash算法加密 # 以上操作撞库有可能会破解真实密码 # 防止撞库问题: 加盐 import hashlib def pwd_md5(pwd): # md5_obj = hashlib.md5() # print(type(md5_obj)) str1 = pwd # '1234' # update中一定要传入bytes类型数据 md5_obj.update(str1.encode(

Java 语言实现 MD5 加密

对着背影说爱祢 提交于 2019-12-04 19:24:56
Java 语言实现 MD5 加密 背景说明 在实际项目中,为了安全性考虑,经常要求账号密码是以加密后的密文形式,保存到数据库中。 这样,即使有人获取到了数据库中的密文密码,也不知道明文密码信息是什么。 密码加密有很多种方式,比如:Base64,DSA,RSA,MD5,SHA128,SHA256,SHA512等加密方式。 本文主要讲述 MD5 加密方式。 MD5 简介 MD5 消息摘要算法(英文:MD5 Message-Digest Algorithm),一种被广泛使用的 密码散列函数 ,可以产生出一个128位(16 字节 )的散列值(hash value),用于确保信息传输完整一致。 MD5由美国密码学家 罗纳德·李维斯特 (Ronald Linn Rivest)设计,于1992年公开,用以取代 MD4 算法。 MD5应用 1、数据加密 利用它的单向加密性,即不可逆性,我们可以应用于数据和密码的加密。 由于MD5算法的单向性,由MD5码计算出原文几乎是不可能的。目前对于这种加密方法的破解方式是收集常用的密码形式,例如生日,身份证号,电话号码等。把这些收集到的秘密用MD5处理之后进行存储,然后与需要还原的MD5进行比对,当收集的数据达到一定的数目,用户密码被破解的可能性就会变得很大。 对于这种方法,一种加强安全性的方法就是在对用户密码进行MD5处理的时候在原密码上加一个附近值

hashlib

 ̄綄美尐妖づ 提交于 2019-12-04 16:21:00
hashlib hashlib是一个加密模块,提供了常见的 摘要算法 ,如MD5,SHA1 MD5算法加密 , 检验数据完整性 所谓摘要算法,也可以称为:哈希算法,离散算法。即通过一个函数,将任意长度的数据转化为一个长度固定的数据串(通常16进制) 摘要算法: ​ 摘要一样,内容就一定一样:保证唯一性 ​ 密文密码就是一个摘要 import hashlib def pwd_md5(pwd): md5_obj = hashlib.md5() #创建一个md5对象 str1 = '1234' md5_obj.update(str1.encode('utf-8')) #update中一定要传入bytes类型数据 sal = '加盐加盐' md5_obj.update(sal.encode('utf-8')) #为了防止撞库,加盐 res = md5_obj.hexdigest() #变成16进制 print(res) #验证 with open('user.txt','r',encoding='utf-8') as f: #打开文件 user_str = f.read() #读取文件 file_user,file_pwd = user_str.strip(':') #用户名,密码 切分 username = input("输入用户名:").strip password = input(

JS前端使用MD5加密

半世苍凉 提交于 2019-12-04 12:32:02
Bootstrap官网获得md5 js地址:https://www.bootcdn.cn/blueimp-md5/ <!--MD5加密--> <script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.js"></script> 使用方法: md5(pwd)    来源: https://www.cnblogs.com/xiejn/p/11863761.html

MD5加密(java代码)

天涯浪子 提交于 2019-12-04 12:24:53
package hdty.project.test.util; import java.io.UnsupportedEncodingException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class EncoderByMd5 { public static String encodeByMd5(String plainText) { StringBuffer buf = new StringBuffer(""); try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(plainText.getBytes()); byte b[] = md.digest(); int i = 0; for (int offset = 0; offset < b.length; offset++) { i = b[offset]; if (i < 0) i += 256; if (i < 16) buf.append("0"); buf.append(Integer.toHexString(i)); } } catch (NoSuchAlgorithmException e)