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

长春好的做网站公司有哪些百度建站官网

长春好的做网站公司有哪些,百度建站官网,做网站的软件项目进度计划,分析对手网站1.为什么要有这个需求#xff1f; 一般当我们自己练习的时候#xff0c;username和password直接是爆露出来的 假如别人路过你旁边时看到了你的数据库账号密码#xff0c;他跑到他的电脑打开navicat直接就是一顿连接#xff0c;直接疯狂删除你的数据库#xff0c;那可就废…1.为什么要有这个需求 一般当我们自己练习的时候username和password直接是爆露出来的 假如别人路过你旁边时看到了你的数据库账号密码他跑到他的电脑打开navicat直接就是一顿连接直接疯狂删除你的数据库那可就废了所以像这种重要的敏感信息一般是加密过后显示出来的也就是数据的脱敏一般公司你看到的数据库连接信息是这样的。 这显然就是加密过后的但是数据库连接时如果获取到的是你加密过后的密码那肯定是错误的所以我们需要在数据库获取到信息之前把它给解密切记解密是在获取到数据之前进行的。 2.jasypt是如何保证数据安全的 可能你会好奇它既然能解密那我拿着你的密文去调用jasypt提供的解密方法(api)去解密不就行了吗但是jasypt可不是这么干的它提供了一个盐salt它加密和解密是如下过程进行的。 可以看出没有盐你就算知道密文也没用。也可以说盐就是打开你金库的钥匙。此时你可能会好奇那密文肯定是代码里面生成的啊那你生成的时候盐salt和原密码肯定也是写在代码里了那不也不安全吗其实这个密文是我们提前通过测试工具类生成好的再放到配置文件中生成好以后测试工具类就可以直接删除了所以盐和原密码不会暴漏在代码中最终只有你知道。 3.SpringBoot项目中如何使用jasypt 3.1引入依赖 !--jasypt-- dependencygroupIdcom.github.ulisesbocchio/groupIdartifactIdjasypt-spring-boot-starter/artifactIdversion3.0.3/version /dependency 3.2创建jasypt工具类 主要用于提前进行加密和解密的 package com.fzy.utils;import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig;public class JasyptPasswordUtil {private static final String PBEWITHMD5ANDDES PBEWithMD5AndDES;private static final String PBEWITHHMACSHA512ANDAES_256 PBEWITHHMACSHA512ANDAES_256;/*** 加密* param salt 你设置加密用的盐* return 加密类PooledPBEStringEncryptor所需要的配置类*/public static SimpleStringPBEConfig getJasyptConfig(String salt){//加解密配置SimpleStringPBEConfig config new SimpleStringPBEConfig();config.setPassword(salt);//配置盐极其重要config.setAlgorithm(PBEWITHHMACSHA512ANDAES_256);//加密算法//下面的配置不用关心config.setKeyObtentionIterations(1000);config.setPoolSize(1);config.setProviderName(SunJCE);config.setSaltGeneratorClassName(org.jasypt.salt.RandomSaltGenerator);config.setIvGeneratorClassName(org.jasypt.iv.RandomIvGenerator);config.setStringOutputType(base64);return config;}/*** 加密方法* param salt 输入盐* param text 输入需要加密的文本* return 密文*/public static String encryptText(String salt, String text){PooledPBEStringEncryptor encryptor new PooledPBEStringEncryptor();//加密类SimpleStringPBEConfig config getJasyptConfig(salt);//获取并设置加密配置类encryptor.setConfig(config);String encryptText encryptor.encrypt(text);//进行加密return encryptText;}/*** 解密方法此处没什么用就是用来自己看看能不能解密* param salt 输入盐* param text 输入需要加密的文本* return 明文*/public static String decryptText(String salt, String text){PooledPBEStringEncryptor encryptor new PooledPBEStringEncryptor();SimpleStringPBEConfig config getJasyptConfig(salt);encryptor.setConfig(config);String decryptText encryptor.decrypt(text);return decryptText;}public static void main(String[] args) {//生成的密文将来放到你yml文件中例如数据库的用户名密码等敏感信息String encryptText encryptText(biecaile, root);System.out.println(加密后 encryptText);String decrypt decryptText(biecaile, encryptText);System.out.println(解密后 decrypt);}} 运行后的结果 稍微了解两个加密算法PBEWithMD5AndDES和PBEWITHHMACSHA512ANDAES_256 这两个算法跟jasypt的版本有关如果我们不配置加密算法无论是3.0还是2.0好像加密都是PBEWithMD5AndDES但是解密如果2.0.xxx是使用的PBEWithMD5AndDES3.0使用的是PBEWITHHMACSHA512ANDAES_256此处不是指我们自己测试去解密而是指再配置完yml文件或者程序参数后自己去解密(下面)所以如果解密算法与加密不一致就会报错(一般启动项目就会报错)最好指定加密算法像我是3.0版指定加密算法为PBEWITHHMACSHA512ANDAES_256 那在yml文件中就不用再配置解密算法了。配一下当然最好。 3.3配置yml文件 jasypt:encryptor:password: biecaile #解密盐值algorithm: PBEWITHHMACSHA512ANDAES_256 #解密算法 test:password: ENC(MsGb7KJD6ZxdEH5O42MMlDVH6mvtP46IlwVqbXq/CHQR75x2WG7YyOf3Ootndd) 其中的test:password是我们自定义的主要用于测试ENC()这个是jasypt自动识别yml属性值的一个标识只要加上当前值就会被解析成明文里面存放的是我们生成的密文。 3.4编写读取yml文件属性值的配置类TestConfig  这里主要是为了测试能不能在获取到属性之前密文已经被解密了也就是说此处如果正确的话获取到的就是我们的明文“root”,实际工作根本不需要 package com.fzy.config;import lombok.Data; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration;Configuration Data public class TestConfig {Value(${test.password})private String password; }3.5随便编写一个TestController去测试获取该数据 Controller RequestMapping(/test) public class TestController {Autowiredprivate TestConfig testConfig;RequestMapping(/getText)ResponseBodypublic String getText(){return testConfig.getPassword();} } 结果发现获取到的是明文已经成功了 4.能在配置文件中配盐值salt吗 肯定是不行的这样salt直接就爆露出来了很危险尤其是放在代码中也很容易就发现一般不会写在配置文件中的我们可以把它放到启动类的程序实参中 填写--jasypt.encryptor.password你的盐值salt然后applyok确定就行。配置完以后把你在配置文件中的password所谓的salt去掉就行结果一样的。一般只要salt配的不对程序启动就会直接报错。 总结这样的话就算我把代码给你你都跑不起来项目因为你没有salt就配不了然后你只能去问我要我就不给你那么你就破解不了数据库的密文你就别想连上我的数据库。
http://www.hkea.cn/news/14498874/

相关文章:

  • 海城网站设计百度本地推广
  • 网站建设行业企业发展前景wordpress+插件+h5
  • 大连做网站优化哪家好初学者自己做网站
  • 163网站源码平台搭建与拆除
  • 自己给网站做优化怎么做温州哪里有网站建设
  • 深圳建设注册中心网站南宁手机企业网站定制公司
  • 佛山网站建设专业主修课程徐州亿网
  • dw做的网站如何上传免费毕业设计的网站建设
  • 完整的app网站开发没有域名怎么访问网站
  • 建设招标网 手机官方网站qtranslate wordpress
  • 互联网挣钱项目平台南通网站seo
  • 郑州东区网站优化公司推荐12380网站开发
  • 西安网站制作开发公司哪家好怎么把视频做成网页链接
  • 企业网站建设招标书合肥网站建设百姓网
  • 招标网址网站大全卡密网站建设
  • 速升网站学网站开发怎么就业
  • 网站建设找云尚网络网站整套模板
  • 广州制作网站公司简介wordpress安全问题
  • 龙岗高端网站建设怎么注册晋江网站做的
  • 广元做开锁网站网络推广的方法和途径
  • 选择常州网站建设公司哪家能建设网站
  • 网站后台后缀名九亭网站建设
  • 北京做养生SPA的网站建设wordpress微信注册
  • 制作个人网站主页wordpress不同背景
  • wordpress制作网站模板seo优化策略
  • 展示系统 网站模板免费下载鞍山信息港便民信息
  • 做网站的如何找业务搜索引擎网站建设
  • 天堂网站什么是手机网站
  • 交友深圳网站建设青海省电话黄页
  • 深圳自建网站做中东市场哪个网站合适