Javascript前端和JAVA后端对加密库的处理实例

简介: 前端加密 Javascript的加解密有开源的库,http://www.oschina.net/p/crypto-js/ 如下是具体的使用例子 //引入的js文件在该链接中:https://github.

前端加密

Javascript的加解密有开源的库,http://www.oschina.net/p/crypto-js/

如下是具体的使用例子

<!DOCTYPE html>

<html lang="zh-cn">

<head>

<meta charset="utf-8"/>

<meta name="viewport" content="width=device-width, initial-scale=1" />

<script src="aes_1.js"></script> //引入的js文件在该链接中:https://github.com/hellobajie/AES-of-JavaScript

</head>

<body>

<script type="text/javascript" >

//16位

var pwd="abcd2016_-=00_X_";

function Decrypt(word){ 

var encryptedHexStr = CryptoJS.enc.Hex.parse(word);

var srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);

console.log(srcs);

var decrypt = CryptoJS.AES.decrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});

var decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);

return decryptedStr.toString();

}

function Encrypt(word){

var key = CryptoJS.enc.Utf8.parse(pwd); 

var iv  = CryptoJS.enc.Utf8.parse(pwd); 

var srcs = CryptoJS.enc.Utf8.parse(word);

var encrypted = CryptoJS.AES.encrypt(srcs, key, { iv: iv,mode:CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});

srcs = CryptoJS.enc.Base64.stringify(encrypted.ciphertext);

return srcs ;

}  

var mm = Encrypt('DEMO');

console.log(mm)   

var jm = Decrypt(mm);

console.log(jm)

</script>

如果使用typescript可以在这找到其和ts集成的定义文件

https://github.com/DefinitelyTyped/DefinitelyTyped/blob/36d40a63a05b5cb3413737fbdf7c9a2a26f211fd/crypto-js/crypto-js.d.ts

后端的java处理

import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import org.apache.commons.codec.binary.Base64;
import javax.crypto.SecretKey;
import javax.crypto.spec.IvParameterSpec;
import java.util.Arrays;

String pwd = "abcd2016_-=00_X_";
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] raw = pwd.getBytes("utf-8");
SecretKey secretKey = new SecretKeySpec(raw, "AES");
System.out.println("密钥的长度为:" + secretKey.getEncoded().length);
Base64 b64 = new Base64();

encrypt = b64.decode(b64.encodeToString("DEMO"));
cipher.init(Cipher.DECRYPT_MODE, secretKey, new IvParameterSpec(raw));//使用解密模式初始化 密钥
byte[] decrypt = cipher.doFinal(encrypt);
System.out.println("解密后:" + new String(decrypt));

 

如果,可以在前端和后端进行各种加密的处理,或把加密的信息在前后端之间交换.

相关文章
|
3天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
28 10
|
9天前
|
监控 Java 物联网
Java串口通信技术探究1:深入理解RXTX库
Java串口通信技术探究1:深入理解RXTX库
23 2
|
1天前
|
前端开发 小程序 测试技术
前端后端测试接口mork神器,Apifox使用一分钟入门
前端后端测试接口mork神器,Apifox使用一分钟入门
5 0
|
1天前
|
Java
代码实例演示Java字符串与输入流互转
代码实例演示Java字符串与输入流互转
|
2天前
|
Java
java中递归实例
java中递归实例
12 0
|
2天前
|
SQL Java 数据库连接
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
JDBC Java标准库提供的一些api(类+方法) 统一各种数据库提供的api
9 0
|
2天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
8 0
|
3天前
|
存储 安全 前端开发
PHP医院安全不良事件管理系统源码(AEMS)前端vue2+element+后端laravel8不良事件上报与闭环管理
医院不良事件上报与管理系统结合现代医院管理思路,遵照PDCA全面质量循环管理方法而设计,并在多家大型三甲医院成熟运用。系统从事件上报、基于人、机、料、法 、环的RCA分析、事件整改、效果评估实现了结构化、标准化、智能化的管理和分析,满足医院可追溯化、全流程闭环管理要求,满足等级医院评审细则要求,大力提高医院不良事件上报的效率,保障事件分析的准确性,促进医疗安全的提高,避免同类事件再次发生,改善整个医院医疗安全,从而实现医院安全医疗的目标。
20 3
|
3天前
|
数据采集 机器学习/深度学习 Java
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
本文介绍了如何使用Java和Apache HttpComponents库从Facebook获取图像数据。通过设置爬虫代理IP以避免限制,利用HttpClient发送请求,解析HTML找到图像链接,然后下载并保存图片。提供的Java代码示例展示了实现过程,包括创建代理配置、线程池,以及下载图片的逻辑。注意,实际应用需根据Facebook页面结构进行调整。
数据猎手:使用Java和Apache HttpComponents库下载Facebook图像
|
4天前
|
前端开发 JavaScript Java
java测试链接超时返回前端
java测试链接超时返回前端
16 0