这样就被加密了 。
是不是很简单?是不是很easy?哈哈哈
后端实现
后端采用的是 Boot框架 , 基于Java实现
java后端使用的是javax.包 , 所以不用引依赖 。
直接编写加密解密工具类 , java类代码如下:
package cn.com.wasec.gd_plice.utils;import lombok.extern.slf4j.Slf4j;import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;import java.nio.charset.StandardCharsets;/*** 登陆密码加密*/@Slf4jpublic class AesUtil {private static final String ALGORITHMS = "AES/ECB/PKCS5Padding";/*** 加密** @param content 内容* @param keykey* @return java.lang.String*/public static String encrypt(String content, String key) {try {//获得密码的字节数组byte[] raw = key.getBytes();//根据密码生成AES密钥SecretKeySpec skey = new SecretKeySpec(raw, "AES");//根据指定算法ALGORITHM自成密码器Cipher cipher = Cipher.getInstance(ALGORITHMS);//初始化密码器 , 第一个参数为加密(ENCRYPT_MODE)或者解密(DECRYPT_MODE)操作 , 第二个参数为生成的AES密钥cipher.init(Cipher.ENCRYPT_MODE, skey);//获取加密内容的字节数组(设置为utf-8)不然内容中如果有中文和英文混合中文就会解密为乱码byte[] byteContent = content.getBytes(StandardCharsets.UTF_8);//密码器加密数据byte[] encodeContent = cipher.doFinal(byteContent);//将加密后的数据转换为字符串返回return Base64.encodeBase64String(encodeContent);} catch (Exception e) {e.printStackTrace();return null;}}/*** 解密** @param encryptStr 加密后的内容* @param decryptKey 解密key* @return java.lang.String*/public static String decrypt(String encryptStr, String decryptKey) {try {//获得密码的字节数组byte[] raw = decryptKey.getBytes();//根据密码生成AES密钥SecretKeySpec skey = new SecretKeySpec(raw, "AES");//根据指定算法ALGORITHM自成密码器Cipher cipher = Cipher.getInstance(ALGORITHMS);//初始化密码器 , 第一个参数为加密(ENCRYPT_MODE)或者解密(DECRYPT_MODE)操作 , 第二个参数为生成的AES密钥cipher.init(Cipher.DECRYPT_MODE, skey);//把密文字符串转回密文字节数组byte[] encodeContent = Base64.decodeBase64(encryptStr);//密码器解密数据byte[] byteContent = cipher.doFinal(encodeContent);//将解密后的数据转换为字符串返回return new String(byteContent, StandardCharsets.UTF_8);} catch (Exception e) {log.error("String : {} aes decrypt error", encryptStr);return null;}}}
直接调用静态方法
String passWord= AesUtil.decrypt(loginDTO.getPassword(),"XXXXXXXXXXXXXX");
至此 , 后端实现结束 。
3、总结
总之 , 加密和解密在实际业务中还是很必要的 , 而选择哪样的方式加密自己斟酌 。
另外 , 以上例子中其实存在些许问题 , 例如秘钥写死在前端代码中 , 这样其实别人是可以通过抓取你的js文件进行分析获取的 , 建议通过后端获取 。
如果对安全要求更高的话 , 还是建议使用https吧
- 古代公文或信件如何加密?拆字法和代码法是什么
- 赠超实用前端干货大合集,含特效源码 web前端开发真的会持续高薪吗?
- 前端如何实现词云效果?
- 加密PDF怎么加密
- 从事前端开发需要学什么 前端开发需要学什么
- 前端培训班出来能找到工作吗 室内设计培训班学费一般多少
- 微信如何单独加密码锁 微信单独加密码锁的方法
- 华为畅享9plus怎么加密密码怎么改 huawei g9 plus
- 大数据前端和后端的区别 前端和后端的区别
- 苹果怎么锁相册 ,照片加密这么简单!以后不怕别人会看见了