关于密码:云密一体京东云密码资源池实力守护安全防线

近年来,网络安全已回升到国家策略高度,明码技术作为网络安全重要的被动防护技术,在信息化过程中失去了更多的利用和倒退。然而,在云计算环境下,传统明码形式面临诸多挑战,明码建设须要更加体系化、集中性的建设。 京东云打造了面向各行业、反对多云异构场景的“云明码资源池”解决方案,实现横跨多云平台的集中明码资产治理。计划基于K8s搭建了云原生明码平安底座,实现明码多云服务与对立治理,并联合京东云现有平安产品,为下层利用提供敏感数据治理、轻量革新、稳定性治理等多维度平安能力。 01 保障618大促加密服务低延时近年来,金融畛域商用明码全面利用和翻新倒退势在必行,京东领取于2021年1月启动本身业务零碎的金融畛域商用明码革新工作,以满足金融明码利用的高平安要求。 业务部署在京东科技上司的多个机房中,网络结构十分复杂。同时,京东领取撑持了京东外部的泛滥业务利用,往往都会面临618、11.11等年度大促以及其余营销流动的高并发场景考验。商密革新后的京东领取零碎必须满足高并发、低时延的性能要求,确保京东用户在应用京东业务利用时能取得良好的体验。 京东云面向金融行业商用明码利用的外围场景,打造反对多云异构场景的“金融级云明码资源池”解决方案,在通用明码资源池的根底上,减少以金融数据密码机为代表的金融级明码硬件设施,以及国密平安键盘等服务金融场景的明码软件产品,通过对立的明码服务平台提供各类明码服务,为京东领取业务零碎提供对立的明码资源池治理、明码接口标准、明码运维与监控等服务,满足金融行业明码利用平安合规要求。 此外,针对金融业务敏感数据的平安防护问题,计划提供了多种数据安全能力,对数据采集、加工、传输、应用、存储、销毁的全生命周期进行了平安防护;同时,为了确保商密革新不影响原有业务零碎的稳定性,计划采纳了京东云的稳定性被动治理产品“云泰”,对商密革新后零碎的稳定性进行了全方位的测试与验证。 在往年京东618期间,京东云提供的加解密服务的峰值TPS高达百万级别,在如此规模的高并发考验下,加解密服务的均匀延时放弃在1毫秒以下。 02 守护青少年隐衷平安近日,共青团成都市委联结京东云打造的全国首个12355青少年综合服务智能平台(以下简称智能平台)正式上线,这是全国首个通过AI机器人为青少年提供心理、法律、窘境征询等公益性服务的网络智能平台。 青少年和智能平台之间每天都会产生海量的对话交互数据,蕴含身份证、电话号码、心理问题形容等敏感文本数据。一旦呈现不法分子攻打等安全事件,这些敏感隐衷数据就会面临泄露、篡改等平安危险,由此造成的损失将无法估量。 京东云平安团队基于明码资源池产品,助力智能平台从0到1建设了面向云上利用的明码利用保障体系,提供身份甄别、数据加解密、完整性、抗抵赖性等明码性能服务,保障智能平台胜利通过“商用明码利用安全性评估”的第三级别测评。 在明码根底层通过部署服务器密码机、IPSec/SSL VPN网关、明码服务平台等软硬件明码产品造成明码资源池,向明码服务层提供基于SM2、SM3、SM4等国密算法的根底明码算力撑持。 在明码服务层由明码服务平台对明码根底层的明码设施进行对接与治理,通过对立的明码服务接口,向智能平台业务零碎提供数据加解密、签名验签、完整性、轻量革新等明码性能服务,撑持各个层面的明码利用。 在明码应用层通过调用各类明码性能服务,对网络和通信、设施和计算、利用和数据等层面进行了明码利用建设,并对系统波及的敏感数据进行了划分与重点保护。 03 打造政务云平安屏障依照《明码法》和山东省明码管理局要求,山东省市两级电子政务云和电子政务外网须要尽快实现网络安全等级爱护三级和商用明码利用安全性评估工作。 然而,传统的间接集成明码设施的形式面临着各种挑战。比方,云计算环境的零碎架构较传统的信息系统有很大变动,相应的平安危险及借助明码技术解决的平安危险点须要从新钻研;再比方,云计算平台具备虚拟化、分布式、资源集中等特点,云环境下相应的明码服务也须要相应调整,如对明码服务虚拟化、明码服务动静迁徙等。 京东云作为滨州市根底专有云平台的责任单位,在政务云平台明码利用建设项目中,参考国家商用明码利用相干规范,设计了滨州政务云平台商用明码利用解决方案。计划通过明码资源池建设,建设明码利用平安体系,为滨州市根底专有云平台提供明码平安服务能力。 计划买通了云上与云下两种不同的部署形式,既能够通过云平台的计算资源实现部署,也能够通过本身的虚拟化技术实现云化部署,同时反对云环境与非云环境的明码建设。 依靠京东云计算技术体系,滨州政务云平台实现了从传统的设施直连模式到云化服务架构的冲破,利用明码设施构建明码资源池,通过虚拟化技术构建明码服务平台,实现明码资源的云化部署与治理。 同时,计划让业务“无感”疾速接入新增业务成为可能。新增业务服务通过对立的明码原子接口,实现不同场景间接接入业务服务接口;既有业务通过平台进行透传服务接入,不影响既有业务的稳固运行。 最终,滨州市政务云平台明码利用建设项目以高分通过了第三级别的商用明码利用安全性评估,并继续为政务云平台的业务零碎提供明码服务和治理撑持。 将来,京东云将继续深耕商用明码畛域,一直夯实明码平安解决方案,构筑产业智能平安防线,以更成熟的明码技术护航“数实交融”。

August 31, 2023 · 1 min · jiezi

关于密码:随机字符串随机密码生成器

随机字符串,随机明码生成器随机字符串,随机明码生成器 本工具反对自定义备选字符和多组随机明码字符串生成,提供简略的明码强度检测提醒,仅供参考,倡议设置12位以上的明码。 客户端实时生成,一键复制,方便快捷。 https://tooltt.com/password/

August 15, 2021 · 1 min · jiezi

关于密码:使用密码查看器查看软件的密码

应用前提: 最近我有个软件的明码遗记了,尽管该软件我曾经登录了,然而当我须要在另一台电脑上登录时我遗记明码了,这时候我无奈在另一台电脑上登录该软件了 应用晨风星号明码查看器来查看软件的明码 下载地址如下: 链接:https://pan.baidu.com/s/1xSVt... 提取码:cqml 下载后将其解压双击关上晨风星号明码查看器.exe文件而后左键点击放大镜按钮不放拖到须要查看明码的中央即可这样咱们就能够查看到明码明文信息了

July 8, 2021 · 1 min · jiezi

关于密码:人人都懂密码学一篇最易懂的Java密码学入门教程

明码与咱们的生存非亲非故,远到国家机密,近到个人账户,咱们每天都在跟明码打交道: 那么,明码从何而来?生存中常见的加密是怎么实现的?怎么保障集体信息安全?本文将从这几方面进行浅谈,如有纰漏,敬请各位大佬斧正。 代码局部从第二章节——常见加密算法开始,对代码比拟感兴趣的铁子们能够从第二章节开始看。 一、 密码学发展史密码学是网络安全、信息安全、区块链等产品的根底,常见的非对称加密、对称加密、散列函数等,都属于密码学领域。 密码学有数千年的历史,从最开始的替换法到现在的非对称加密算法,经验了古典密码学,近代密码学和古代密码学三个阶段。密码学不仅仅是数学家们的智慧,更是现在网络空间平安的重要根底。 1.1 古典密码学古典明码的加密形式次要有替换法和移位法。古典明码尽管很简略,然而在明码史上是应用的最久的加密形式,直到“概率论”的数学方法被发现,古典明码就被破解了。 1.2 近代密码学古典明码的安全性受到了威逼,外加应用便利性较低,到了工业化时代,近现代明码被广泛应用。 恩尼格玛机 恩尼格玛机是二战时期纳粹德国应用的加密机器,后被英国破译,参加破译的人员有被称为计算机科学之父、人工智能之父的图灵。 1.3 古代密码学① 散列函数 散列函数,也见杂凑函数、摘要函数或哈希函数,可将任意长度的音讯通过运算,变成固定长度数值,常见的有MD5、SHA-1、SHA256,多利用在文件校验,数字签名中。 MD5 能够将任意长度的原文生成一个128位(16字节)的哈希值 SHA-1能够将任意长度的原文生成一个160位(20字节)的哈希值 ② 对称明码 对称明码利用了雷同的加密密钥和解密密钥。对称明码分为:序列密码(流明码),分组明码(块明码)两种。流明码是对信息流中的每一个元素(一个字母或一个比特)作为根本的处理单元进行加密,块明码是先对信息流分块,再对每一块别离加密。 例如原文为1234567890,流加密即先对1进行加密,再对2进行加密,再对3进行加密……最初拼接成密文;块加密先分成不同的块,如1234成块,5678成块,90XX(XX为补位数字)成块,再别离对不同块进行加密,最初拼接成密文。前文提到的古典密码学加密办法,都属于流加密。 ③ 非对称明码 对称明码的密钥平安极其重要,加密者和解密者须要提前协商密钥,并各自确保密钥的安全性,一但密钥泄露,即便算法是平安的也无奈保障原文信息的私密性。 在理论的应用中,近程的提前协商密钥不容易实现,即便协商好,在近程传输过程中也容易被别人获取,因而非对称密钥此时就凸显出了劣势。 非对称明码有两支密钥,公钥(publickey)和私钥(privatekey),加密和解密运算应用的密钥不同。用公钥对原文进行加密后,须要由私钥进行解密;用私钥对原文进行加密后(此时个别称为签名),须要由公钥进行解密(此时个别称为验签)。公钥能够公开的,大家应用公钥对信息进行加密,再发送给私钥的持有者,私钥持有者应用私钥对信息进行解密,取得信息原文。因为私钥只有繁多人持有,因而不必放心被别人解密获取信息原文。 二、常见加密算法 让咱们来看看生存中常见的几种加密形式: 2.1 对称加密算法采纳单钥明码零碎的加密办法,同一个密钥能够同时用作信息的加密和解密,这种加密办法称为对称加密,也称为单密钥加密。 示例 咱们当初有一个原文3要发送给B设置密钥为108, 3 * 108 = 324, 将324作为密文发送给BB拿到密文324后, 应用324/108 = 3 失去原文常见加密算法 DES : Data Encryption Standard,即数据加密规范,是一种应用密钥加密的块算法,1977年被美国联邦政府的国家标准局确定为联邦材料解决规范(FIPS),并受权在非密级政府通信中应用,随后该算法在国内上宽泛流传开来。 AES : Advanced Encryption Standard, 高级加密规范 .在密码学中又称Rijndael加密法,是美国联邦政府采纳的一种区块加密规范。这个规范用来代替原先的DES,曾经被多方剖析且广为全世界所应用。 特点 加密速度快, 能够加密大文件密文可逆, 一旦密钥文件透露, 就会导致数据裸露加密后编码表找不到对应字符, 呈现乱码个别联合Base64应用2.1.1 DES加密示例代码 des加密算法 ...

October 16, 2020 · 19 min · jiezi

暗网还能买到银行账户个人信息明码标价最低不到-2-美元

技术编辑:芒果果丨发自 思否编辑部SegmentFault 思否报道丨公众号:SegmentFault 明码是咱们爱护个人信息的重要形式之一,咱们的财务信息、集体敏感信息都能够通过这把“钥匙”关上,这些字母和数字也成了网络犯罪分子的指标。 据 Digital Shadows 网络安全钻研人员的最新考察结果显示,暗网上有近 150 亿条个人信息发售,其中包含银行账户信息、个人身份信息等。 这些账户信息的售价均匀为 15.43(约 108 元人民币)美元,银行/金融服务账户的均匀售价为 70.91(约 500 元人民币)美元。 个人账户信息售价从 2 美元到 140000 美元不等Digital Shadows 在过来的两年半工夫里收集了数百个针对 9 个沉闷和已开业的暗网市场广告。 在所有这些平台上,单个帐户的均匀费用为 15.43 美元。银行/金融服务账户最多,平均价格也最高,达到了 70.91 美元。防病毒程序的帐户访问量排在第二位,均匀约为 21.67 美元。所有其余类型的帐户均匀都略低于或低于 10 美元。有些甚至不到 2 美元就能够买到,例如文件共享或视频游戏帐户。 据 Digital Shadows 网络安全钻研人员所说,他们还理解到一些无关域管理员拜访的立功广告(登录详细信息、凭据或来自组织或集体计算机的敏感文件,用于拜访零碎/基础架构、数据、银行帐户和/或其余帐户),从简略的账户入侵到残缺的网络入侵。这些拜访权以均匀 3139(约 2.2 万元人民币)美元到最高 140000(约 98 万元人民币)美元的价格发售或拍卖。 账户拜访权售价最低账户拜访权限的价格绝对较低,因为这些账户是有“有效期”的,也就是说买家不会永恒领有他们所购买的账户登陆权限,因为受害者意识到本人账户信息被盗的工夫不确定,所以登陆权限很可能随时变得有效。 次要因素包含以下两点: 1.买家无奈保障他们的购买将长期授予他们拜访权限;登录详细信息随时可能变得有效,结果买者自负。 2.供应商能够便宜、高效(甚至主动)取得帐户拜访权限,因而能够高价发售它们。通常,它们是应用凭证填充之类的技术取得的。然而,许多产品也是另一种立功的副产品,容许它们以高价发售,甚至收费共享。 在数字化时代,个人账户信息泄露很难防止,咱们日常接触最多的,相似采购电话也是信息泄露带来的危害,只不过这种水平信息盗取还没有威逼到财产平安。 但信息泄露也不是齐全无奈防备的,从集体角度来说要加强信息保护意识,首先要做到个人信息不随便走漏给别人,还能够设置更简单的明码减少破解难度。

July 9, 2020 · 1 min · jiezi

前端面试每日-31-第181天

今天的知识点 (2019.10.14) —— 第181天[html] 请使用纯HTML制作一个进度条[css] 你知道css的预处理器和后处理器都有哪些吗?它们有什么区别呢?[js] 写一个密码生成器,并同时写一个密码强度校验的方法[软技能] 你有自己写过爬虫的程序吗?说说你对爬虫和反爬虫的理解?《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。 前端面试每日3+1题,以面试题来驱动学习,每天进步一点! 让努力成为一种习惯,让奋斗成为一种享受!相信 坚持 的力量!!!欢迎在 Issues 和朋友们一同讨论学习! 项目地址:前端面试每日3+1 【推荐】欢迎跟 jsliang 一起折腾前端,系统整理前端知识,目前正在折腾 LeetCode,打算打通算法与数据结构的任督二脉。GitHub 地址 微信公众号欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个Star, 同时欢迎微信扫码关注 前端剑解 公众号,并加入 “前端学习每日3+1” 微信群相互交流(点击公众号的菜单:进群交流)。 学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布面试题(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!(不忘初心,html、css、javascript才是基石!)欢迎大家到Issues交流,鼓励PR,感谢Star,大家有啥好的建议可以加我微信一起交流讨论!希望大家每日去学习与思考,这才达到来这里的目的!!!(不要为了谁而来,要为自己而来!)交流讨论欢迎大家前来讨论,如果觉得对你的学习有一定的帮助,欢迎点个[Star] https://github.com/haizlin/fe...

October 14, 2019 · 1 min · jiezi

HG220GU光猫超级用户密码zz

原博_20150321 反正被上海电信坑了要换光猫结果所有设置权全部上交了,唉,不过有朋友还在用姑且也留个档吧。 原教程地址也已经没了 http://77ya.com/?article/wwjc... 光纤猫超级密码获取(网上那些个教程基本不适合新版2013年出的光纤猫了) 在浏览器上输入 http://192.168.1.1/logoffaccount.html,设置隐藏用户改为启用,这样就可以用工程账号登陆了。登录工程帐号(用户名:fiberhomehg2x0密码:hg2x0),登录网址http://192.168.1.1/(如果这个你走不了,请联系电信处理吧,别乱弄的网都上不了。)工程模式中,开启FTP功能(自己设置一个用户名和密码,默认都是admin);出厂设置-升级image-【更新 -- 预配置生成】,点击[生成预配置]登录FTP,地址ftp://192.168.1.1/fhconf/,用户名和密码是3中你设置的,复制其中的backpresettings.conf到本地使用记事本打开,后中字符串极为密码,需使用base64解密,在这里解密, Base64加密解密,即为密码,用户名是telecomadmin使用telecomadmin和密码登录http://192.168.1.1/,即可管理猫大部分功能。 其实是一集美剧引发的血案。。。乐视的字幕没出于是去搜下载,结果只有迅雷于是就下载了,呵护了好久的ssd一朝破功-_-|||磁盘再起不能只好用time machine恢复,应用程序没有备份我连浏览器都没了,幸好系统应用里仅存safari和itunes。。。硬盘里还是山狮的安装盘,我的系统早已是优胜美地了,于是踏上了漫漫下载路。。。 被百度云折磨得死去活来,拖了两个版本,一个装不到u盘上,一个索性打不开,死活md5也不对,继续在mega上下载,20k的速度俨然回到解放前。。。 伴随着对电信的恨恨之心,疑似速度限制和内网ip有关,可我这连拨号都被光猫代劳了,于是又拾起了破解大计。早先直接提供的超级用户密码早已不对,这回终于找到了可用的攻略,不过这家的攻略版本还漏了一个解密网址,差点功亏一篑。。。

June 26, 2019 · 1 min · jiezi

jQuery实现记住帐号密码功能

记住密码是每个有帐号登录的网站必备的,现在说一下通过COOKIE实现的记住密码功能。<!DOCTYPE html><html><head> <meta charset=“utf-8”> <title>COOKIE</title></head><body><script type=“text/javascript” src=“jquery-3.3.1.min.js”></script><script type=“text/javascript” src=“jquery.cookie.js”></script><script type=“text/javascript”>//读取cookievar user = $.cookie(‘uu’);var pwd = $.cookie(‘pp’);$(document).ready(function(){ // 判断是否存在cookie if (user) { $(“input:text”).val(user); $(“input:password”).val(pwd); $("#che").html("<input type="checkbox" onclick="uncheck()" id="check1" checked/>"); }});// 选中记住密码function check(){ $("#che").html("<input type="checkbox" onclick="uncheck()" id="check1"/>"); // 设置为选中状态 document.getElementById(“check1”).checked=true; // 创建一个cookie并设置有效时间为 7天 $.cookie(‘uu’, $(“input:text”).val(), { expires: 7 }); $.cookie(‘pp’, $(“input:password”).val(), { expires: 7 }); }// 取消记住密码function uncheck(){ $("#che").html("<input type="checkbox" onclick="check()" id="check1"/>"); // 设置为取消状态 document.getElementById(“check1”).checked=false; // 删除cookie $.cookie(‘uu’,’’); $.cookie(‘pp’,’’); }</script><input type=“text” name=“username” placeholder=“帐号”><br/><input type=“password” name=“password” placeholder=“密码”><br/>记住密码:<div id=“che”><input type=“checkbox” onclick=“check()” id=“check1”/></div><br/></body></html>只要在表单输入帐号密码,再勾选记住密码,那么你的帐号密码就已经被存入到cookie了,有效期7天。然后你刷新页面,发现帐号密码还在表单中,不会被清空。demo:http://likeyunba.com/m/Login-…作者:TANKINGweb:http://likeyunba.com时间:2019-03-09 ...

March 9, 2019 · 1 min · jiezi

前端加密那点事

前奏最近公司一个项目在传输数据的时候,测试部门安全扫描后,发现密码类型的数据是明文传输的,果断不符合要求,让加密,就有了接下来的故事。使用场景前后端使用HTTP协议进行交互的时候,由于HTTP报文为明文,所以通常情况下对于比较敏感的信息可以通过加密在前端加密,然后在后端解密实现"混淆"的效果,避免在传输过程中敏感信息的泄露(如,密码,证件信息等)。不过前端加密只能保证传输过程中信息是‘混淆’过的,对于高手来说,打个debugger,照样可以获取到数据,并不安全,所谓的前端加密只是稍微增加了攻击者的成本,并不能保证真正的安全。 综上,服务端绝对不能相信前端传递过来的密文直接保存入库,只能通过服务端自己加密进行加密保存。那么前端加密是不是就没有意义了呢?答案是否定的,至少可以保证传输过程中不是明文传输,如果前后端交互需要安全的通道建议使用HTTPS协议进行通信。分类简单来说,加密分两种方式对称加密对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密也就是密钥也可以用作解密密钥,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困难,除了数据加密标准(DES),另一个对称密钥加密系统是国际数据加密算法(IDEA),它比DES的加密性好,而且对计算机功能要求也没有那么高 常见的对称加密算法有DES、3DES、Blowfish、IDEA、RC4、RC5、RC6和AES非对称加密非对称加密算法需要两个密钥:公钥(publickey)和私钥(privatekey)。 公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密;如果用私钥对数据进行加密,那么只有用对应的公钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公钥向其它方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。甲方只能用其专用密钥解密由其公钥加密后的任何信息。 常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用)对称加密DES实现方式(1)使用Crypto-JS通过DES算法在前端加密npm install crypto-js(2)加解密 使用DES算法,工作方式为ECB,填充方式为PKcs7var CryptoJS = require(“crypto-js”);const secretKey = ‘com.sevenlin.foo.key’;var afterEncrypt = CryptoJS.DES.encrypt(’encryptCode’, CryptoJS.enc.Utf8.parse(secretKey), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7}).toString()console.log(afterEncrypt);//8/nZ2vZXxOzPhU7ZHBwz7w==var afterDecrypt = CryptoJS.DES.decrypt(afterEncrypt, CryptoJS.enc.Utf8.parse(secretKey), { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7}).toString(CryptoJS.enc.Utf8);console.log(afterDecrypt);//encryptCode(3)使用BC通过DES算法在后端解密 a.安装<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk16</artifactId> <version>1.46</version></dependency>b.加解密工具public class DesCipherUtil { private DesCipherUtil() { throw new AssertionError(“No DesCipherUtil instances for you!”); } static { // add BC provider Security.addProvider(new BouncyCastleProvider()); } /** * 加密 * * @param encryptText 需要加密的信息 * @param key 加密密钥 * @return 加密后Base64编码的字符串 / public static String encrypt(String encryptText, String key) { if (encryptText == null || key == null) { throw new IllegalArgumentException(“encryptText or key must not be null”); } try { DESKeySpec desKeySpec = new DESKeySpec(key.getBytes()); SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(“DES”); SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec); Cipher cipher = Cipher.getInstance(“DES/ECB/PKCS7Padding”, “BC”); cipher.init(Cipher.ENCRYPT_MODE, secretKey); byte[] bytes = cipher.doFinal(encryptText.getBytes(Charset.forName(“UTF-8”))); return Base64.getEncoder().encodeToString(bytes); } catch (NoSuchAlgorithmException | InvalidKeyException | InvalidKeySpecException | NoSuchPaddingException | BadPaddingException | NoSuchProviderException | IllegalBlockSizeException e) { throw new RuntimeException(“encrypt failed”, e); } } /* * 解密 * * @param decryptText 需要解密的信息 * @param key 解密密钥,经过Base64编码 * @return 解密后的字符串 */ public static String decrypt(String decryptText, String key) { if (decryptText == null || key == null) { throw new IllegalArgumentException(“decryptText or key must not be null”); } try { DESKeySpec desKeySpec = new DESKeySpec(key.getBytes()); SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(“DES”); SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec); Cipher cipher = Cipher.getInstance(“DES/ECB/PKCS7Padding”, “BC”); cipher.init(Cipher.DECRYPT_MODE, secretKey); byte[] bytes = cipher.doFinal(Base64.getDecoder().decode(decryptText)); return new String(bytes, Charset.forName(“UTF-8”)); } catch (NoSuchAlgorithmException | InvalidKeyException | InvalidKeySpecException | NoSuchPaddingException | BadPaddingException | NoSuchProviderException | IllegalBlockSizeException e) { throw new RuntimeException(“decrypt failed”, e); } }}c.解密前端的加密信息String fromWeb = “8/nZ2vZXxOzPhU7ZHBwz7w==";String key = “com.sevenlin.foo.key”;String afterDecrypt = DesCipherUtil.decrypt(fromWeb, key);System.out.println(afterDecrypt);//encryptCode非对称加密(1)下载加密文件依赖 (2) 引入依赖<script src=“bin/jsencrypt.min.js”></script>或者import ‘../../assets/js/jsencrypt.min.js’;(3)使用方式this.privateKey=-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQABAoGAfY9LpnuWK5Bs50UVep5c93SJdUi82u7yMx4iHFMc/Z2hfenfYEzu+57fI4fvxTQ//5DbzRR/XKb8ulNv6+CHyPF31xk7YOBfkGI8qjLoq06V+FyBfDSwL8KbLyeHm7KUZnLNQbk8yGLzB3iYKkRHlmUanQGaNMIJziWOkN+N9dECQQD0ONYRNZeuM8zd8XJTSdcIX4a3gy3GGCJxOzv16XHxD03GW6UNLmfPwenKu+cdrQeaqEixrCejXdAFz/7+BSMpAkEA8EaSOeP5Xr3ZrbiKzi6TGMwHMvC7HdJxaBJbVRfApFrE0/mPwmP5rN7QwjrMY+0+AbXcm8mRQyQ1+IGEembsdwJBAN6az8Rv7QnD/YBvi52POIlRSSIMV7SwWvSK4WSMnGb1ZBbhgdg57DXaspcwHsFV7hByQ5BvMtIduHcT14ECfcECQATeaTgjFnqE/lQ22Rk0eGaYO80cc643BXVGafNfd9fcvwBMnk0iGX0XRsOozVt5AzilpsLBYuApa66NcVHJpCECQQDTjI2AQhFc1yRnCU/YgDnSpJVm1nASoRUnU8Jfm3Ozuku7JUXcVpt08DFSceCEX9unCuMcT72rAQlLpdZir876-----END RSA PRIVATE KEY-----; this.publicKye=-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtNFOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4gwQco1KRMDSmXSMkDwIDAQAB-----END PUBLIC KEY-----; var encrypt = new JSEncrypt(); encrypt.setPublicKey(this.publicKye); var encrypted = encrypt.encrypt(’encryptCode’);//w1a1FXmlbFj9yOxLCoqIzNo2ytXypyupZABsi/e4kMA9mERngmaDwlOuHsUDQKC0nK1v7Ehr3vYKcALFQvjscWEkGIW/UWCk73jArwqEYF1wd45eHSCPwUeB85Ellr+IYTqhZXcfmHZUCuprF2gayPUecq7F51aWxpfqMP0uvtY= // Decrypt with the private key… var decrypt = new JSEncrypt(); decrypt.setPrivateKey(this.privateKey); var uncrypted = decrypt.decrypt(encrypted);//encryptCode生成publickey和privateKey的在线地址 虽然前端可以加密,终归不是安全方式,如果为了更加的安全还是使用https传输,后端加密保存吧!参考文章: 通过DES实现JavaScript加密和Java解密 加密库 ...

January 21, 2019 · 2 min · jiezi

Mysql修改密码之后,Navicat依然使用旧密码连接问题

今天因为需要将放在腾讯云服务器上的MySQL共享给同事,所以想把密码修改成大家容易记忆的,修改了MySQL的密码之后,在腾讯云的终端上连接mysql,需要使用新密码连接,但是在使用navicat连接时(以前连接过)却还是得使用以前的旧密码,同事也表示需要使用旧密码连接。网上有挺多解决方案的,参考资料:MYSQL更改密码后navicat依然可用旧密码连接这个帖子应该是说得最到位的,但是user表里面已经没有password这个字段了,而是改成了authentication_string这个字段。mysql5.7 mysql库下面的user表没有password字段无法修改密码Linux下查看MySQL的安装路径

January 11, 2019 · 1 min · jiezi