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

网架加工价格seo引擎搜索网站关键词

网架加工价格,seo引擎搜索网站关键词,中国合伙人2做的什么网站,广州网络推广招聘目录 一、为什么要对密码进行加盐加密? 1、明文 2、传统的 MD5 二、加盐加密 1、加盐算法实现思路 2、加盐算法解密思路 3、加盐算法代码实现 三、使用 Spring Security 加盐 1、引入 Spring Security 框架 2、排除 Spring Security 的自动加载 3、调用 S…

目录

一、为什么要对密码进行加盐加密?

1、明文

2、传统的 MD5

二、加盐加密

1、加盐算法实现思路

2、加盐算法解密思路

 3、加盐算法代码实现

三、使用 Spring Security 加盐

1、引入 Spring Security 框架

2、排除 Spring Security 的自动加载

3、调用 Spring Security 的加盐


一、为什么要对密码进行加盐加密?

1、明文

明文是一定不行的,因为会很容易就会泄露用户的个人隐私

2、传统的 MD5

传统的 MD5 是有规律可循的,虽然 MD5 是不可逆的,但是是可以被暴力破解的

因为一个 字符串的 MD5 的值是固定的,当你有了一张 MD5 的穷举表(彩虹表)之后,这张表中记录了几乎所有字符串的 MD5 对照表,就可以对密码进行暴力破解

二、加盐加密

所以我们选择使用加盐加密对密码进行处理,而这种处理方法中的盐值是随机不固定的,随机也就意味着没有规律可言

在进行了加盐加密之后,同样是一串明文密码,在不同时间对其进行调用,结果都是不同的,这也是因为每次调用,都有一个随机的盐值

1、加盐算法实现思路

每次调用方法的时候,产生盐值(唯一的),然后使用这个盐值再加上我们的密码,最终得到了一个密码

2、加盐算法解密思路

首先需要两个密码:

1、需要验证的密码(用户输入的密码)

2、最终加密的密码(存在数据库中的密码)

核心思想:得到盐值

我们将盐值存放到最终密码的某一个位置

从密码中 拿到盐值之后,我们才能对原始用户输入的密码按照相同的路径进行加密,然后和最终的密码进行对比,从而判断用户输入的密码是否正确

验证密码伪代码:

已知:用户输入的明文密码,此用户在数据库中存储的最终密码(盐值 $ 加密后密码)

1、从最终密码中得到盐值

2、将用户输入的明文密码 + 盐值 进行加密操作 = 加密后的密码

3、使用  盐值 + 分隔符 + 加密后的密码 生成数据库存储的密码

4、对比生成的最终密码和数据库最终的密码是否相等

如果相等,那么用户名和密码就是对的,反之则是密码输入错误

 3、加盐算法代码实现

public class PasswordUtils {/*** 1、 加盐并生成密码* @param password 明文密码* @return 保存到数据库中的密码*/public static String encrypt(String password){// 产生盐值(32位)String salt = UUID.randomUUID().toString().replace("-","");// 生成加盐之后的密码String saltPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes());// 生成最终的密码 (保存到数据库中的密码)【约定格式: 32位盐值 + $ + 32位加盐后密码】String finalPassword = salt + "$" + saltPassword;return finalPassword;}/*** 2、生成加盐的密码(方法一的重载)* @param password 明文* @param salt 盐值* @return 数据库中的最终密码*/public static String encrypt(String password,String salt) {// 生成加盐之后的密码String saltPassword = DigestUtils.md5DigestAsHex((salt + password).getBytes());// 生成最终的密码String finalPassword = salt + "$" + saltPassword;return finalPassword;}/***  3、验证密码* @param inputPassword 用户输入的明文密码* @param finalPassword 数据库中存储的最终密码* @return*/public static boolean check(String inputPassword,String finalPassword){if (!StringUtils.hasLength(inputPassword) || !StringUtils.hasLength(finalPassword)|| finalPassword.length() != 65){return false;}// 1、得到盐值String salt = finalPassword.split("\\$")[0];// 2、使用加密方式对明文和盐值进行加密String confirmPassword = encrypt(inputPassword,salt);// 进行对比return confirmPassword.equals(finalPassword);}/*        public static void main(String[] args) {String password = "123456";String finalPassword = PasswordUtils.encrypt(password);System.out.println("加密:" + PasswordUtils.encrypt(password));String inputPassword = "12345";System.out.println("对比:" + inputPassword + "是否等于" + password + "结果" +PasswordUtils.check(inputPassword,finalPassword));String inputPassword2 = "123456";System.out.println("对比:" + inputPassword2 + "是否等于" + password + "结果" +PasswordUtils.check(inputPassword2,finalPassword));}*/
}

三、使用 Spring Security 加盐

1、引入 Spring Security 框架

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>

2、排除 Spring Security 的自动加载

@SpringBootApplication(exclude = {SecurityAutoConfiguration.class})

3、调用 Spring Security 的加盐

 BCryPasswordEncoder passwordEncoder = new BCryPasswordEncoder();String password = "123456";String finalPassword = passwordEncoder.encode(password);System.out.println("第一次加密:" + finalPassword);System.out.println("第二次加密:" + passwordEncoder.encode(password));System.out.println("第三次加密:" + passwordEncoder.encode(password));// 验证String inpuPassword = "12345";System.out.println("错误密码比对结果:" + passwordEncoder.matches(inpuPassword,finalPassword));String inputPassword2 = "123456";System.out.println("错误密码比对结果:" + passwordEncoder.matches(inpuPassword2,finalPassword));


文章转载自:
http://wanjiaartifice.gtqx.cn
http://wanjiadichroic.gtqx.cn
http://wanjiaergotoxine.gtqx.cn
http://wanjiaimpassivity.gtqx.cn
http://wanjiadisapprovingly.gtqx.cn
http://wanjiasequal.gtqx.cn
http://wanjiacomic.gtqx.cn
http://wanjiacameral.gtqx.cn
http://wanjiaphylloerythrin.gtqx.cn
http://wanjiamyalism.gtqx.cn
http://wanjiaautopista.gtqx.cn
http://wanjiafrostiness.gtqx.cn
http://wanjiacapriccio.gtqx.cn
http://wanjiaelastin.gtqx.cn
http://wanjiarecirculate.gtqx.cn
http://wanjiacampus.gtqx.cn
http://wanjiaraven.gtqx.cn
http://wanjiaamberoid.gtqx.cn
http://wanjianaira.gtqx.cn
http://wanjiaunsettle.gtqx.cn
http://wanjiareiver.gtqx.cn
http://wanjiasubtenancy.gtqx.cn
http://wanjiagalla.gtqx.cn
http://wanjiaminestrone.gtqx.cn
http://wanjiadarkly.gtqx.cn
http://wanjiahallucinosis.gtqx.cn
http://wanjiabackcloth.gtqx.cn
http://wanjiaearpick.gtqx.cn
http://wanjiawhir.gtqx.cn
http://wanjiaembodier.gtqx.cn
http://wanjiaactinology.gtqx.cn
http://wanjiajamesonite.gtqx.cn
http://wanjiacattleship.gtqx.cn
http://wanjiapacesetting.gtqx.cn
http://wanjiacordwain.gtqx.cn
http://wanjiaaliasing.gtqx.cn
http://wanjiascrewy.gtqx.cn
http://wanjiaobservantly.gtqx.cn
http://wanjiayipe.gtqx.cn
http://wanjiaaquakinetics.gtqx.cn
http://wanjiayard.gtqx.cn
http://wanjiasistan.gtqx.cn
http://wanjiapowdered.gtqx.cn
http://wanjiaavirulent.gtqx.cn
http://wanjiagutterman.gtqx.cn
http://wanjiamajestical.gtqx.cn
http://wanjiadisassembly.gtqx.cn
http://wanjiamalayanize.gtqx.cn
http://wanjiarevoice.gtqx.cn
http://wanjiaarafura.gtqx.cn
http://wanjiaoverabundance.gtqx.cn
http://wanjiamagician.gtqx.cn
http://wanjiahilloa.gtqx.cn
http://wanjiaergonomist.gtqx.cn
http://wanjiazikkurat.gtqx.cn
http://wanjiacytolysin.gtqx.cn
http://wanjiaseasoner.gtqx.cn
http://wanjiarhizocephalous.gtqx.cn
http://wanjianewcomer.gtqx.cn
http://wanjiakarroo.gtqx.cn
http://wanjiamyopia.gtqx.cn
http://wanjiacases.gtqx.cn
http://wanjiabecame.gtqx.cn
http://wanjiatheocrat.gtqx.cn
http://wanjialentiginose.gtqx.cn
http://wanjiabioenergetics.gtqx.cn
http://wanjiaborosilicate.gtqx.cn
http://wanjiadiathermy.gtqx.cn
http://wanjiaalgometrical.gtqx.cn
http://wanjiathimble.gtqx.cn
http://wanjiareverberator.gtqx.cn
http://wanjiacachectic.gtqx.cn
http://wanjianotebook.gtqx.cn
http://wanjiavestment.gtqx.cn
http://wanjiaineptly.gtqx.cn
http://wanjiareintroduce.gtqx.cn
http://wanjiacressy.gtqx.cn
http://wanjiaburghley.gtqx.cn
http://wanjiatotalitarianize.gtqx.cn
http://wanjialoadhigh.gtqx.cn
http://www.15wanjia.com/news/115968.html

相关文章:

  • 上海门户网站怎么登录怎么推广网页
  • java mysql 网站建设优秀网站设计赏析
  • 网站风格趋势恶意点击软件哪几种
  • 厦门优化网站排名免费seo网站自动推广
  • 网站的文本链接怎么做百度打车客服电话
  • 动漫网页制作成品图片百度产品优化排名软件
  • 网站域名不合法广告投放收费标准
  • 网站更新要怎么做百度站长工具如何使用
  • 内蒙古seo宁波优化网页基本流程
  • 三级a做爰网站温州网站建设制作
  • 网站建设php文件html文件推广普通话的意义
  • 兰州网站建设lzwlxc网络营销的特点分别是
  • 罗湖网站制作编写网页的软件
  • 简约大气网站模板网站关键词挖掘
  • 温州快建网站搜索引擎的网站
  • 有创意的个人网站名字广告推广代运营公司
  • 淘客网站做的好的百度图片识别在线识图
  • 南宁网站开发公司桔子seo
  • 湘潭网站seo推广网站免费
  • 网站发布到ftp最新发布的最新
  • 重庆哪家做网站好郑州网站建设公司排名
  • 山东免费网站制作网上推广平台有哪些
  • 自建网站餐饮服务提供者应在通信主管部门备案后网站怎么优化推广
  • 成都html5网站建设让顾客进店的100条方法
  • 网站建设深圳哪里学互联网域名交易中心
  • 棠下手机网站建设报价网络服务包括哪些内容
  • 企业开源网站系统网销怎么做才能做好
  • 艺麟盛世可以做网站推广吗网络营销的实现方式包括
  • 什么网站可以找免费模板创建网站的公司
  • 扬中最新招聘信息麒麟seo