现在 web 项目中,用户注册登录场景下的表单提交,密码基本都是经过加密的,这种基于安全考虑的做法是很有必要的。
下面就 RSA 的前端加密,后端解密的用法进行简述:
生成 RSA 密钥对:
/** * 在会话中放入RSA 公私钥 * @param model */ private void putKey(Model model) { try { Map<String, Object> keyMap = RSAUtils.genKeyPair(); String publicKey = RSAUtils.getPublicKey(keyMap); String privateKey = RSAUtils.getPrivateKey(keyMap); model.addAttribute("pubKey", publicKey); request.getSession().setAttribute("priKey", privateKey); } catch (Exception e) { log.error(e.getMessage(), e); } }
js 加密:
var pubKey = ;//公钥事先由后台生成后,发回前端; var encrypt = new JSEncrypt(); encrypt.setPublicKey(pubKey); var encryptPwd = encrypt.encrypt('your password'); // 放心!每次加密后的串都不相同
主要依赖:jsencrypt.min.js
java 解密:
String priKey = request.getSession().getAttribute("priKey"); // 在session中获取私钥 String decryptPwd = RSAUtils.decrypt(encryptPwd, priKey);主要依赖:RSAUtils.java,Base64Utils.java
相关资源下载地址:
标签: RSA encrypt decrypt java js
分享:
崇尚极简,热爱技术,喜欢唱歌,热衷旅行,爱好电子产品的一介码农。
联系QQ:58742094
联系电话:
工作邮箱:
当你的才华还撑不起你的野心的时候,你就应该静下心来学习,永不止步!
人生之旅历途甚长,所争决不在一年半月,万不可因此着急失望,招精神之萎葸。
Copyright 2015- 芒果酷(mangocool.com) All rights reserved. 湘ICP备14019394号
免责声明:本网站部分文章转载其他媒体,意在为公众提供免费服务。如有信息侵犯了您的权益,可与本网站联系,本网站将尽快予以撤除。