当前位置: 首页 > news >正文

衡水wap网站建设常州网站建设推广公司

衡水wap网站建设,常州网站建设推广公司,wordpress mysql 崩溃,肥城房产网首先介绍一下MD5#xff0c;而项目中用的是MD5和盐值来确保密码的安全性#xff1b; 1. md5简介 md5的全称是md5信息摘要算法#xff08;英文#xff1a;MD5 Message-Digest Algorithm #xff09;#xff0c;一种被广泛使用的密码散列函数#xff0c;可以产生一个128位…首先介绍一下MD5而项目中用的是MD5和盐值来确保密码的安全性 1. md5简介 md5的全称是md5信息摘要算法英文MD5 Message-Digest Algorithm 一种被广泛使用的密码散列函数可以产生一个128位16字节1字节8位的散列值常见的是用32位的16进制表示比如0caa3b23b8da53f9e4e041d95dc8fa2c用于确保信息传输的完整一致。 2. md5原理 md5将整个文件当做一个大文本信息通过不可逆的字符串变换算法产生一个唯一的MD5信息摘要。文件的md5类似于人的指纹在世界上是独立无二的如果任何人对文件做了任何改动其md5的值也就是对应的“数字指纹”都会发生变化。 对MD5算法简要的叙述可以为MD5以512位分组来处理输入的信息且每一分组又被划分为16个32位子分组经过了一系列的处理后算法的输出由四个32位分组组成将这四个32位分组级联后将生成一个128位散列值。 md5与对称和非对称加密算法不同这两种密码是防止信息被窃取而摘要算法的目标是用于证明原文的完整性。 3. md5特性 1. 不可逆 没有系统有办法知道md5原来的文字是什么。 2. 具有高度的离散性 md5码具有高度的散列性没有规律可循哪怕原信息只有一点点的变化比如多个空格那么就会导致md5发生巨大变化也可以说产生的md5码是不可预测的。 3. 压缩性 任意长度的数据算出的md5值得长度都是固定的。 4. 弱碰撞性 已知原数据和其md5的值想找到一个具有相同md5值得数据即伪造数据是非常困难的。 4. md5的用途 密码的加密存储用户设置密码时服务端只记录这个密码的MD5而不记录密码本身以后验证用户身份时只需要将用户输入的密码再次做一下MD5后与记录的MD5作一个比较即可验证其密码的合法性。 数字签名比如发布一个程序为了防止别人在你的程序里插入病毒或木马你可以在发布这个程序的同时公开这个程序文件的MD5码这样别人只需要在任何地方下载这个程序后做一次MD5然后跟公开的这个MD5作一个比较就知道这个程序是否被第三方修改过。 文件完整性验证比如当下载一个文件时服务器返回的信息中包括这个文件的md5在本地下载完毕时进行md5将两个md5值进行比较如果一致则说明文件完整没有丢包现象。 文件上传比如百度云实现的秒传就是对比你上传的文件md5在百度服务器是否已经存在了。 MD5不安全的3个原因 1、字典表很大 在网上有很多md5解密网站如https://md5.cn/就如同一个字典表。通过在数据库存储很多常用的密码可以在很短的时间内查找任何哈希值的答案。这种数据库占用大量的磁盘空间具有一定的成功率。在计算机安全领域一些朋友需要用到MD5解密网站通过这类型的网站可以提高工作效率大家可以去试试。 2、碰撞 安全的算法具有良好的抗冲突性也就是说对于不同的单词获得相同哈希值的可能性比较低但是MD5的抗冲突性较低。 3、暴力攻击速度很快 蛮力攻击是通过尝试多种可能性来查找密码的一种方法即可以猜测用户可能使用的东西出生日期孩子的名字宠物的名字等也可以尝试一切从ab c到10个字符的特殊字符密码。抵御暴力攻击的唯一方法可能是密码长度如果您拥有40个字符长的随机密码带有特殊字符那么目前你的密码可能是安全的。 所以这里采用MD5盐值的方法来加强密码的安全性 首先在项目中加入hutool的依赖我们就可以使用这个类了 dependencygroupIdcn.hutool/groupIdartifactIdhutool-all/artifactIdversion5.8.5/version/dependency 然后创建一个util工具包来存放我们的密码工具类 PasswordUtil 接下来我们就可以直接使用hutool里面的IdUtil生成随机盐值然后盐值密码再进行MD5进行进一步的加密因为常用$符进行分隔这里也用$进行分割 public static String encrypt(String password) {// 随机盐值String salt IdUtil.simpleUUID();// 密码md5(随机盐值密码)String finalPassword SecureUtil.md5(salt password);return salt $ finalPassword;} 之后我们需要进行“解密”验证一下数据库中加密的密码是否达到了我们期待的结果 /*** 解密** param password 要验证的密码未加密* param securePassword 数据库中的加了盐值的密码* return*/public static boolean decrypt(String password, String securePassword) {boolean result false;if (StringUtils.hasLength(password) StringUtils.hasLength(securePassword)) {if (securePassword.length() 65 securePassword.contains($)) {String[] securePasswordArr securePassword.split(\\$);// 盐值String slat securePasswordArr[0];String finalPassword securePasswordArr[1];// 使用同样的加密算法和随机盐值生成最终加密的密码password SecureUtil.md5(slat password);if (finalPassword.equals(password)) {result true;}}} 进行测试 public static void main(String[] args) {String password admin;String dbPassword PasswordUtil.encrypt(password);System.out.println(加密密码 dbPassword);boolean result PasswordUtil.decrypt(123, dbPassword);System.out.println(对比结果1 result);boolean result2 PasswordUtil.decrypt(123456, dbPassword);System.out.println(对比结果2 result2);} 这样我们就完成了这个类似单元测试的一个密码加密工作在以后的项目中都可以进行如此设置
http://www.hkea.cn/news/14359643/

相关文章:

  • 建设厅网站查询电工证件网站建设的关键
  • 各省网站备案时长网站制作网站开发
  • 北京海淀网站建设公司怎么查询网站的设计公司
  • 如何创建网站推广产品面包店网站功能建设与栏目划分
  • wordpress建立商业网站黑龙江新闻夜航今晚回放
  • 怎样讲卖灯的网站做的好处财税公司网站开发
  • 重庆商城网站建设地址全国工商网注册查询网
  • 如何创建一个网站餐厅网站设计
  • 提供网站建设电话湘潭建设网站公司
  • 建博会广州网站阳江市住房和城乡规划建设局网站
  • 哲学专业特色建设网站品牌建设需要哪几层工作
  • 做网站 搞流量网站建设费用都选网络
  • 温州企业建站系统建筑装饰设计专业学什么
  • 我的家乡网站建设模板下载网站网站设计的公司
  • 建设音乐网站北京数字智慧展厅设计咨询
  • 城市建设招标网站搭建本地网页
  • 网站设计的介绍模板云南建设人才网站首页
  • 专业制作网站哪家好中国建设银行网站晋阳支行
  • 广西城乡和住房建设厅网站首页自己做的网站怎么备案
  • 电子商务网站规划、电子商务网站建设会所网站模板
  • 南昌网站设计网站建设推广信息
  • 影视公司招聘当阳seo外包
  • 网站平台设计费用开发一款网络游戏需要多少钱
  • 网站建设现况分析建筑资料网站大全
  • 电信网站备案查询php 企业 网站
  • 打开网站要密码网页样式与布局
  • 手机app制作网站网络推广哪个平台好
  • 购物网站建设方案ppt沈阳红方城网站建设
  • 太原网站域名开发做网站公司名字应该用图片吗
  • 网站开发包开发者模式有什么危害