java相互加密解密
java代码
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;public class AesUtils {public static String encrypt(String plaintext, String key, String iv) throws Exception {Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));cipher.init(Cipher.ENCRYPT_MODE, keySpec, ivSpec);byte[] encryptedBytes = cipher.doFinal(plaintext.getBytes("UTF-8"));return Base64.getEncoder().encodeToString(encryptedBytes);}public static String decrypt(String encryptedText, String key, String iv) throws Exception {Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");IvParameterSpec ivSpec = new IvParameterSpec(iv.getBytes("UTF-8"));cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);byte[] decryptedBytes = cipher.doFinal(Base64.getDecoder().decode(encryptedText));return new String(decryptedBytes, "UTF-8");}}
前端代码:
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.1.1/crypto-js.min.js"></script>
<html>
<head><title>console detect test</title><script src="Content/js/crypto-js.min.js"></script><script src="Content/js/jquery-1.9.1.js"></script>
</head>
<body>
<script>var key = "1234567890abcdef";var iv = "abcdef1234567890";// 加密函数function encrypt(text, keyTxt,ivTxt) {var key = CryptoJS.enc.Utf8.parse(keyTxt);var iv = CryptoJS.enc.Utf8.parse(ivTxt);var encrypted = CryptoJS.AES.encrypt(text, key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return encrypted.toString();}// 解密函数function decrypt(ciphertext, keyTxt,ivTxt) {var key = CryptoJS.enc.Utf8.parse(keyTxt);var iv = CryptoJS.enc.Utf8.parse(ivTxt);var decrypted = CryptoJS.AES.decrypt(ciphertext.toString(), key, {iv: iv,mode: CryptoJS.mode.CBC,padding: CryptoJS.pad.Pkcs7});return decrypted.toString(CryptoJS.enc.Utf8);}function jiami() {var txt1 = $("#txt1").val();var txt2 = encrypt(txt1, key,iv);$("#txt2").val(txt2);}function jiemi() {var txt2 = $("#txt2").val();var txt1 = decrypt(txt2, key,iv);$("#txt1").val(txt1);}
</script>
<textarea id="txt1" style="height: 100px;width: 100%"></textarea>
<br/>
<button onclick="jiami()">加密</button>
<button onclick="jiemi()">解密</button>
<br/>
<textarea id="txt2" style="height: 100px;width: 100%"></textarea></body>
</html>
相关文章:
java相互加密解密
java代码 import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.util.Base64;public class AesUtils {public static String encrypt(String plaintext, String key, String iv) throws Exception {C…...
PostgreSQL中FIRST_VALUE、LAST_VALUE、LAG 和 LEAD是窗口函数,允许返回在数据集的特定窗口(或分区)内访问行的相对位置
在PostgreSQL中,FIRST_VALUE、LAST_VALUE、LAG 和 LEAD 是窗口函数(window functions),它们允许你在数据集的特定窗口(或分区)内访问行的相对位置。以下是对这些函数的详细解释和用法: 1. FIRS…...
树莓派之旅-第一天 系统的烧录和设置
自言自语: 在此记录一下树莓派的玩法。以后有钱了买点来玩啊草 系统的安装烧录 系统下载 树莓派官网:https://www.raspberrypi.com/ 首页点击SoftWare进入OS下载页面 这里是安装工具:安装工具负责将系统镜像安装到sd卡中 点击下载符合自己…...
数据库工程师进阶秘籍:云计算基础知识题目精选与答案(附PDF)
【单选题】1、将基础设施作为服务的云计算服务类型是()。 A. IaaS B. PaaS C. SaaS D. 以上都不是 正确答案:A 答案解析:本题考查云计算的服务类型。基础设施即服务IaaS(Infrastructure as a Service)&…...
【HAProxy】如何在Ubuntu下配置HAProxy服务器
HAProxy 是一款免费、开源且强大的反向代理程序,它为 HTTP 和 TCP 基础的应用提供了高可用性、负载均衡以及代理功能,因此对于管理高流量服务器(或 Web 应用)来说,通过将负载分散到多个节点服务器上,它是一…...
C#编写的盘符图标修改器 - 开源研究系列文章
这天在网上遇到一个Windows的盘符图标修改软件,但是它那个是.net framework 2.0的,所以就将其改成4.8.1的了,用于Windows 11等默认不安装2.0库的操作系统里使用。 1、 项目目录; 2、 源码介绍; 它直接进行注册表的修改…...
(四)配置有线网口、SSH登陆、文件传输以及运行交叉编译程序测试
文章目录 配置有线网口原因自动分配不行第一步 设置前先停止网络接口第二步 手动分配ip第三步 使配置的网口ip永久生效第四步 测试一下网络是否通了 SSH登陆文件传输以及运行交叉编译程序测试第一种借助基于SSH的命令行工具SCP传输文件第二种借助基于MobaXterm 软件直接上传测试…...
离线的方式:往Maven的本地仓库里安装依赖
jar文件及源码的绝对路径,gav坐标,打包方式,Maven本地仓库的路径 mvn install:install-file ^-DfileD:\hello-spring-boot-starter-1.0-SNAPSHOT.jar ^-DsourcesD:\hello-spring-boot-starter-1.0-SNAPSHOT-sources.jar ^-DgroupIdcom.examp…...
《深入浅出HTTPS》读书笔记(22):密钥协商算法
《深入浅出HTTPS》读书笔记(22):密钥协商算法 密钥的管理和分配是个难题,尤其是生成一个动态密钥更难,而密钥协商算法就可以解决密钥分配、存储、传输等问题。 在网络通信中,为了加密…...
kubernetes学习-Service
kubernetes学习-Service 1. Service说明2. 功能3.Service类型3.1 NodePort3.1.1 创建web-service.yaml3.1.2 创建web-pod.yaml3.1.3 部署3.1.4 验证 3.2 ClusterIP3.2.1 创建web-clusterIp-service.yaml3.2.2 创建web-clusterIp-pod.yaml3.2.3 部署3.2.4 验证 3.3 LoadBalancer…...
Springcloud项目-前后端联调(一)
项目采用SpringCloud整体构建,nacos作为注册中心,Mysql和Redis进行数据存储,整体项目类似于平时使用的出行APP,idea2023编写后端,vscode编写前端 后端代码先前已经编写完毕 这部分功能主要是通过前端输入出发地和目的地之后调用…...
洛谷P1525 [NOIP2010 提高组] 关押罪犯(种子并查集基础)
题目链接:P1525 [NOIP2010 提高组] 关押罪犯 - 洛谷 | 计算机科学教育新生态 题目难度:普及+/提高 题目描述: S 城现有两座监狱,一共关押着 N 名罪犯,编号分别为 1∼N,有m对罪犯,每对之间有仇恨值,问如何分配罪犯使得现 Z 市长要看到其中最大的矛盾值最小。 输入格…...
【算法刷题指南】模拟
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站 🌈个人主页: 南桥几晴秋 🌈C专栏: 南桥谈C 🌈C语言专栏: C语言学习系…...
学习笔记078——Java Properties类使用详解
文章目录 概述常见方法写入读取遍历 概述 Properties 继承于 Hashtable。表示一个持久的属性集,属性列表以key-value的形式存在,key和value都是字符串。 Properties 类被许多Java类使用。例如,在获取环境变量时它就作为System.getPropertie…...
若依使用 Undertow 替代 Tomcat 容器
文章目录 需求提出应用场景解决思路注意事项完整代码第一步:在 ruoyi-framework/pom.xml 文件中进行依赖配置第二步:修改 application.yml 配置文件第三步:修改文件上传工具类 FileUploadUtils.java 运行结果 需求提出 在开发若依框架的前后…...
多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测
多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测 目录 多输入多输出 | Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入多输出预测预测效果基本介绍模型背景程序设计参考资料 预测效果 基本介绍 Matlab实现WOA-CNN鲸鱼算法优化卷积神经网络多输入…...
Elasticsearch:基础概念
一、什么是Elasticsearch Elasticsearch是基于 Apache Lucene 构建的分布式搜索和分析引擎、可扩展数据存储和矢量数据库。它针对生产规模工作负载的速度和相关性进行了优化。使用 Elasticsearch 可以近乎实时地搜索、索引、存储和分析各种形状和大小的数据。Elasticsearch 是…...
Spring MVC的@ResponseBody与@RequestBody
ResponseBody注解用于将Controller的方法返回的对象,通过springmvc提供的HttpMessageConverter接口转换为指定格式的数据如:json,xml等,通过Response响应给客户端。 RequestBody注解用于读取http请求的内容(字符串),通过springmv…...
智能商业分析 Quick BI
Quick BI 是阿里云提供的一款智能商业分析(BI)工具,旨在帮助企业快速获取业务洞察、优化决策过程、提升数据分析效率。通过强大的数据可视化和分析功能,Quick BI 能够帮助用户轻松连接多种数据源、创建多维度的报表和仪表盘&#…...
LUA基础语法
目录 变量篇 算数运算符 条件分支语句与循环语句 函数 表 Table 全局变量与本地变量 协程 元表 面向对象(封装,继承,多态) 常用自带库 垃圾回收 变量篇 print("hello") print("lua") --注释 --[[…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
MMaDA: Multimodal Large Diffusion Language Models
CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
【git】把本地更改提交远程新分支feature_g
创建并切换新分支 git checkout -b feature_g 添加并提交更改 git add . git commit -m “实现图片上传功能” 推送到远程 git push -u origin feature_g...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验
Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...
