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

自己学做网站需要学多久大连网站设计费用

自己学做网站需要学多久,大连网站设计费用,网站 开发 外包,洛阳搜索引擎优化一、MD5 加密算法 MD5#xff08;Message Digest Algorithm 5#xff09;是一种常用的哈希函数#xff0c;用于将任意长度的数据进行不可逆的加密处理。MD5 可以将输入的任意长度的数据转换为一个128位#xff08;16字节#xff09;的哈希值#xff0c;通常表示为32个十…一、MD5 加密算法 MD5Message Digest Algorithm 5是一种常用的哈希函数用于将任意长度的数据进行不可逆的加密处理。MD5 可以将输入的任意长度的数据转换为一个128位16字节的哈希值通常表示为32个十六进制数字。 MD5 的特点 不可逆性MD5 加密是不可逆的即无法从加密后的结果还原出原始数据。固定长度输出不论输入数据的长度如何MD5 始终输出固定长度的哈希值。高速度MD5 的计算速度较快。 虽然MD5能够对数据加密但已被证明存在多种破解方式。常见的破解方法有彩虹表攻击和碰撞攻击。所以不建议单独使用 MD5 进行加密。 彩虹表攻击 彩虹表是一种预计算的哈希值与明文密码的映射表。攻击者通过比对MD5哈希值与彩虹表中的条目快速找到对应的明文。 碰撞攻击MD5易受碰撞攻击即两个不同的输入(如文本、密码)生成相同的哈希值。攻击者可以构造特定数据生成与目标哈希值相同的伪造数据。如果输入的信息得到的哈希值与密码的哈希值相同那么这个密码就别破解了。 因此会将数据进行加盐加密加盐加密是一种增强密码存储安全性的技术通过为每个用户的密码添加一个随机字符串称为“盐”再对组合后的字符串进行哈希处理。这种方法可以有效防止彩虹表攻击和字典攻击。 盐值通常是一个随机的、唯一的字符串与密码拼接后再进行哈希运算。例如 原始密码password123盐值a1b2c3d4加盐后输入password123a1b2c3d4哈希结果哈希函数(password123a1b2c3d4) 加盐的优势 即使两个用户使用相同的密码由于盐值不同哈希结果也不同。攻击者无法直接使用预计算的彩虹表因为盐值增加了破解难度。 二、加盐加密算法 加密思路 盐值唯一的字符串可用UUID 生成   数据 (MD5 加密后的数据) 最终存入数据库的加密数据 验证数据思路 获取数据库加密数据取出加密数据的盐值盐值 待验证数据MD5 加密后  待验证数据最终结果待验证数据 与 数据库中的加密数据对比相等则是正确的否则是错误的 package com.kjz.utils.common;import org.springframework.util.DigestUtils; import org.springframework.util.StringUtils;import java.util.UUID;public class PasswordUtils{/*** 1.加盐并生成最终的密码* param password 明文的密码* return 最终生成的密码*/public static String encrypt(String password){//a.产生盐值//UUID.randomUUID()会生成32位数字4位-是随机的唯一的将4位-去掉就得到32位数字的盐值String salt UUID.randomUUID().toString().replace(-,);//生成加盐后的密码(需要使用MD5)String saltPassword DigestUtils.md5DigestAsHex((salt password).getBytes());//返回最终的密码格式return salt $ saltPassword;}/*** 2.加盐并生成最终密码格式方法一的重载区别于上面的方法这个方法是用来解密的给定了盐值生成一个最终密码后面要和正确的最终密码进行比对* param password 需要验证的明文密码* param salt* return*/public static String encrypt(String password, String salt){//1.生成一个加密后的密码String saltPassword DigestUtils.md5DigestAsHex((salt password).getBytes());//2.生成最终的密码待验证String finalPassword salt $ saltPassword;return finalPassword;}/*** 3.验证密码* param inputPassword 登录用户输入的明文密码* param finalPassword 数据库中实际的最终密码格式* return*/public static boolean check(String inputPassword, String finalPassword){//首先判断这两个参数到底有没有值,数据库中的最终密码是不是65位if(StringUtils.hasLength(inputPassword) StringUtils.hasLength(finalPassword) finalPassword.length() 65){//a.首先从最终的密码中得到盐值//使用$将finalPassword划分成两个部分前面的32位的部分就是盐值//注意这里的$是被认为是一个通配符所以要转义一下String salt finalPassword.split(\\$)[0];//b.使用之前加密的方法生成最终的密码格式待验证String checkPassword encrypt(inputPassword,salt);if(checkPassword.equals(finalPassword)){return true;}}return false;} }
http://www.w-s-a.com/news/260108/

相关文章:

  • 网站推广公司兴田德润紧急网页升级紧急通知
  • 厦门做网站哪家强企业网站网页设计的步骤
  • 普拓网站建设济南行业网站建设
  • 燕郊 网站开发网站里的地图定位怎么做
  • 门户网站建设招标互联网创业项目概述
  • 用什么做网站比较好市场调研公司是做什么的
  • 电商网站充值消费系统绍兴网站优化
  • 深圳网站建设公司联虚拟币交易网站开发
  • 专业网站设计建设公司抖音代运营公司排名前十强
  • 做网站架构肃北蒙古族自治县建设局网站
  • 推广网站怎么建经济研究院网站建设方案
  • 网站建设商家淘宝客自建网站做还是用微信qq做
  • django做网站效率高吗涉县移动网站建设报价
  • 做外贸网站注册什么邮箱能够做渗透的网站
  • 购物网站 怎么做织梦网站会员功能
  • 北京市网站开发公司郑州联通网站备案
  • 温岭专业营销型网站建设地址wordpress小程序怎么不用认证审核
  • 网站建设主体设计要求微信公众号缴费
  • 网站建设的税率WordPress多用户建站
  • 专业门户网站的规划与建设网络培训
  • 东莞汽车总站停止营业crm管理系统在线使用
  • 深圳网站建设公司哪个网络优化是做什么的
  • 大连地区做网站自己怎么做电影网站
  • 成都APP,微网站开发手机要访问国外网站如何做
  • 网站app建设用discuz做的手机网站
  • vs 2008网站做安装包公众号登录超时
  • 银川做网站推广wordpress dux会员中心
  • 双辽做网站wordpress怎么写html代码
  • 建站公司哪家好 知道万维科技西安都有哪些公司
  • 设计网站官网入口佛山 品牌设计