当前位置: 首页 > 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/14264062/

相关文章:

  • 网站规划设计方案ui工程师工资一般多少
  • 怎样申请做自己的网站深圳高端网站制作价格
  • 网站开发设计需求网站建设公司公司介绍
  • 网站资讯建设用dw建设网站
  • 兰州手机网站制作wordpress 手机验证码插件
  • 申报城市维护建设税上哪个网站wordpress加一个字段
  • 长安网站建设详细教程建立网站三大基础
  • 网站设计主题如何让域名跳转网站
  • 中国免费网站服务器做搜狗网站优化
  • 网站建设客户告知书如何办网站
  • 淮安市建设银行网站怎么做网站页面
  • 衡水做网站开发的wordpress文章爬取
  • 自己开网站做职称论文可以吗seo博客大全
  • 青岛网站推广企业怎么做旅游网站框架
  • 网站制作报价优惠电商运营公司
  • 宁波网站模板哪家性价比高兖州城乡建设局网站
  • 云南省建设厅网站网站建设用到什么软件
  • 国外好用的网站厦门专业做优化的公司
  • 网站建设好不好学古侯子 wordpress
  • 什么类型网站可以发外链的网站或平台有哪些
  • 做网站上传的图片显示变形网站建设专业介绍
  • 西安 网站空间网站换域名了怎么办seo
  • 怎么建设一个网站wordpress卢松松主题
  • 启迪网站建设域名注册服务网站哪个好
  • php网站标题修改集团网站改版方案
  • 苏州建网站的公司一站式服务外贸网站模板推荐
  • 的广州建网站的公司网站建设dw 什么软件
  • 如何写网站代码是什么原因网站水军怎么做
  • 这个网站中有网名做会计的吗 了解一下毕业设计做啥网站好
  • 怎样制作表白网站wordpress调用昵称