纯JS加密+时间校验(没引用任何框架),Java解密

news/2024/12/26 16:19:24/文章来源:https://www.cnblogs.com/wwssgg/p/18633343

1、JS加密

function caesarEncrypt(text, shift) {let str = "G7bCk1Xf2A9qLmJ0pVrTz5D4oS6wEhN" + Date.now().toString();return str.split('').map(char => String.fromCharCode(char.charCodeAt(0) + 3)).join('');
} 

2、Java校验 verify

package com.bak.util;import java.time.Duration;
import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;public class CaesarCipherUtil {private static  String key = "G7bCk1Xf2A9qLmJ0pVrTz5D4oS6wEhN";// 解密函数,类似于加密,只是 shift 应该取反public static String caesarDecrypt(String encryptedText, int shift) {StringBuilder decryptedText = new StringBuilder();// 遍历每个字符,进行解密for (int i = 0; i < encryptedText.length(); i++) {char ch = encryptedText.charAt(i);// 通过将字符的 ASCII 码减去 shift 来解密decryptedText.append((char) (ch - shift));}return decryptedText.toString();}// 加密函数public static String caesarEncrypt(String text, int shift) {StringBuilder encryptedText = new StringBuilder();// 遍历每个字符,进行加密for (int i = 0; i < text.length(); i++) {char ch = text.charAt(i);// 通过将字符的 ASCII 码加上 shift 来加密encryptedText.append((char) (ch + shift));}return encryptedText.toString();}public static String verify(String token){String decryptedText = caesarDecrypt(token,3);if(!decryptedText.startsWith(key)){return "校验不通过!";}else{Long timestamp = Long.valueOf(decryptedText.substring(32));// 将时间戳转换为 LocalDateTimeLocalDateTime time = Instant.ofEpochSecond(timestamp).atZone(ZoneId.systemDefault()).toLocalDateTime();// 获取当前时间LocalDateTime now = LocalDateTime.now();// 计算时间差Duration duration = Duration.between(time, now);// 判断时间差是否超过5分钟if (duration.toMinutes() > 5) {return "时间超出5分钟!";}}return null;}public static void main(String[] args) {// 示例:凯撒密码加密和解密String originalText = "Hello, World!";int shift = 3;  // 假设加密时使用了 shift 为 3// 加密文本String encryptedText = caesarEncrypt(originalText, shift);System.out.println("Encrypted Text: " + encryptedText);// 解密文本String decryptedText = caesarDecrypt(encryptedText, shift);System.out.println("Decrypted Text: " + decryptedText);}}

  

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/859345.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

学习笔记(四十九):Text常用场景

1、设置文本断行及折行Text(this.content).fontSize(14).textAlign(TextAlign.End).textOverflow({ overflow: TextOverflow.Ellipsis }).wordBreak(WordBreak.BREAK_WORD).maxLines(this.contentMaxLine) 作者:听着music睡出处:http://www.cnblogs.com/xqxacm/Android交流群…

VS2022 + OpenSSL 3.0实现DES、AES、RSA加密

​ 一、DES加密 #include <openssl/des.h> #include <cstdio> #include <iostream> #include <cstdlib> #include <iomanip> #define MAX_LINE 1024 #pragma warning(disable : 4996)using namespace std;signed main() {const_DES_cblock key …

SARscape洪水分类工具使用说明

SARscape6.1新增洪水分类工具,可以从多时相SAR数据提取洪水信息。工具主要使用了模糊分类技术——模糊C均值分类器(FCM),可加入坡度参数去除阴影的影响。 本文以洪水前后哨兵1数据为例,介绍洪水分类工具的使用。如下图为洪水发生前后两期已经经过预处理的后向散射系数图像…

汽车以旧换新政策的数字化协同解决方案

随着《汽车以旧换新补贴政策》的落地实施,汽车市场迎来了新的增长机遇。政策驱动与市场竞争的双重压力下,如何在短时间内整合资源、抢占市场先机,成为汽车经销商和销售团队的共同挑战。借助在线协同工具,企业能够打破部门与组织边界,实现从政策到执行全流程的高效管理,为…

36MT160-ASEMI开关电源整流方桥36MT160

36MT160-ASEMI开关电源整流方桥36MT160编辑:ll 36MT160-ASEMI开关电源整流方桥36MT160 型号:36MT160 品牌:ASEMI 封装:D-63 特性:插件整流方桥 正向电流:35A 反向耐压:1600V 恢复时间:>2000ns 引脚数量:5 芯片个数:4 芯片尺寸:50MIL 浪涌电流:500A 漏电流:>10…

java8--方法--格式化输出--printf

System.out.printf("%,.2f",10000.0 / 3.0); 效果图:ps: 在分隔符后可以指定字符串长度 System.out.printf("%,10.2f",10000.0 / 3.0); 效果图:

JDBC核心6步

1JDBC简介 java DataBase Connectivity,又称java数据库连接是独立于任何数据库管理系统的api java提供接口规范,由各个数据库厂商提供接口的实现,厂商提供的实现封装成jar文件,也就是我们俗称的数据库驱动jar包 学习JDBC,充分体现了面向接口编程的好处2.JDBC核心6步 1.注册…

【python应用】基于 Python 的远程管理工具:PyChi 远程管理系统

一、引言 在现代 IT 环境中,远程管理工具是开发者和运维人员必不可少的利器。本文将为大家介绍一个基于 Python 构建的多功能远程管理工具 PyChi,它能够让你轻松地对远程客户端进行管理操作,包括文件管理、系统命令执行、截图、录音等功能。二、软件简介 PyChi 是一个基于异…

Hexo-Github-pages-实现个人博客

Hexo + Github pages 实现个人博客 一、过程总览和回顾 我是新手,2024/12/21号尝试着自己搭建自己的个人博客网站,起初是只想着在自己本地电脑环境上搭建 一开始使用了Hugo,据说是世界上最快的静态网页生成器,但是捣鼓了一个下午,无功而返第一个原因:阅读官方文档不够仔细…

AI智能分析视频分析网关热知识:视频分析技术如何帮助提升城市公共安全?

城市公共安全是社会发展的重要基础,而视频分析技术的应用为提升这一领域的效率和效果提供了强有力的支持。随着城市化进程的加快,公共安全面临的挑战日益增多,如何有效监控和管理城市环境中的安全隐患,已成为城市管理者亟待解决的问题。接下来,我们将详细探讨视频分析技术…

quietflow.js-jquery背景层动画插件

quietflow.js是一款可以制作炫酷页面背景层动画效果的jquery插件。该jquery插件内置了9种不同效果的背景层动画,你可以为页面轻松的添加背景动画效果。 可用的背景层动画效果有:squareFlash vortex bouncingBalls shootingLines simpleGradient starfield layeredTriangles c…

用echarts绘制的相关地图,热力图层,点,背景等都可修改

实际项目中用echarts绘制的相关地图,热力图层,点,背景等都可修改,点位可点击。 注意事项: 项目中安装的echarts版本必须是4.9.0的,"echarts": "^4.9.0", "echarts-countries-js": "^1.0.5", "echarts-gl": "^1.1…