JEncrypt和Java构建前后端RSA加密

利用jsencrypt.js 进行前端RSA加密,java后端解密 利用jsencrypt.js 进行前端RSA加密,java后端解密一、RSA加密算法什么是RSA加密RSA加密与解密RSA秘钥生成方式二、前端使用jsencrypt进行加密三、Java解密解密参考 敏感信息加密传输,可以一定程度上避免重要业务数据和个人信息泄露。 一、RSA加密算法 什么是RSA加密 RSA加密算法是一种非对称加密算法,RSA加密使用了"一对"密钥.分别是公钥和私钥,这个公钥和私钥其实就是一组数字!其二进制位长度可以是1024位或者2048位.长度越长其加密强度越大,目前为止公之于众的能 阅读详情

代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/jsencrypt/3.0.0-rc.1/jsencrypt.min.js"></script>
    <script>
        $(document).ready(function(){
            $("#tran").click(function(){
                $("#content").empty()
                var a = new JSEncrypt()
                var pubk = $("#pubk").val()
                a.setPublicKey(pubk);
                var ss = ""
                var str = $("#str").val()
                $("#strlen").val(str.length)

                while(str.length>37){ //RSA一次加密不要超过127字节,前台验证中文字符长度37位内,ascii可更长
                    var temp = str.substr(0,37)
                    ss+= '.'+a.encrypt(temp)
                    str = str.substr(37)
                }
                ss+= '.'+a.encrypt(str)
                ss = ss.substr(1)
                $("#content").append(ss)
            })
        })
    </script>
    <style>
        div{
            width: 90%;
            margin: 10px auto;
            float: left;
        }
        label{
            width: 100px;
        }
    </style>
</head>
<body>
    <div>
        <label for="pubk">公钥</label>
        <input type="text" id="pubk" style="width:50%">
    </div>
    <div>
        <label for="str">原字符</label>
        <input type="text" id="str">
        <button id="tran">转化</button>
    </div>
    <div>
        <label for="str">长度</label>
        <input type="text" id="strlen">
    </div>
    <div>
        <label for="content">加密后字符</label>
        <textarea id="content" rows="5" style="width: 50%;word-break:break-all">
        </textarea>
    </div>
</body>
</html>
public static String decrypt(String privateKey,String str) throws Exception{
		//base64编码的私钥
		byte[] decoded = Base64.decodeBase64(privateKey);  
        RSAPrivateKey priKey = (RSAPrivateKey) KeyFactory.getInstance("RSA").generatePrivate(new PKCS8EncodedKeySpec(decoded));  
		//RSA解密
		Cipher cipher = Cipher.getInstance("RSA");
		cipher.init(Cipher.DECRYPT_MODE, priKey);
		StringBuffer sb = new StringBuffer();
		String[] strArr = str.split(".");
		for(String content :strArr) {
			//64位解码加密后的字符串
			byte[] inputByte = Base64.decodeBase64(content.getBytes("UTF-8"));
			sb.append(new String(cipher.doFinal(inputByte)));
		}
		return sb.toString();
	}

 

RSA加解密方式以及生成RSA密钥对方式 RSA加解密方式以及生成RSA密钥对方式 需要按照具体情况进行操作对于某些时候可能有相对改动 前端使用jsencrypt实现密码加密传输方式 Java后端使用hutool工具和原生两种方式对于RSA进行生成与加解密 在线密钥对生成工具网站 http://web.chacuo.net/netrsakeypair 目前登录接口密码是明文传输,如果安全性有要求,可以调整成加密方式传输。参考如下 如果只需要查看后端方式请点击目录或者下拉到下方查看 前端实现 实例demo 1、修改前端login.js对密码进行 阅读详情

相关推荐

logisim实验六:MIPS运算器设计

实验目的 学生理解算术逻辑运算单元(ALU)的基本构成,掌握 Logisim 中各种运算组件的使用方法,熟悉多路选择器的使用,能利用前述实验完成的 32 位加法器、 Logisim 中的运算组件构造指定规格的 ALU 单元。 设计要求 利用前面实验封装好的 32 位加法器以及 logisim 平台中现有运算部件构建一个 32 位算术逻辑运算单元(禁用 Logisim 系统自带的加法器,减法器),可支持算术加、减、乘、除,逻辑与、或、非、异或运算、逻辑左移、逻辑右移、算术右移运算,支持常用程序状态标志(有符号

gyp0205的博客 2万+

jsencrypt 库作用

jsencrypt`是一个 RSA(非对称加密算法)加密和解密的库。

weixin_64684095的博客 840

qt下使用grpc编程(2) —— 练手!自己改的一个简单小例子!1

(1)在研究了grpc官方提供的helloworld例程后,自己试着写了个小程序。 (2)编写proto文件。 proto文件用于定义服务和消息,用protobuf的语法编写,protobuf是一种通信协议,详细请百度。下面附上源码: syntax = "proto3"; option java_multiple_files = true; option java_pac

u011099079的博客 3925

vue:登录密码加密 jsencrypt^3.0.0-rc.1

1.安装 jsencrypt@3.0.0-rc.1,2.创建jsencrypt.js文件。3.引用jsencrypt。

Ygaidi的博客 1008

机械臂抓取前言

机械臂相关的笔记

weixin_64037619的博客 3908

银行卡密码键盘 SM4 ECB模式+ANSI X9.8 格式标准(带主账号信息)PIN 加解密示例

文章目录1.软加解密示例2.知识点①ANSI X9.8 格式标准②主密钥,工作密钥加解密基本概念:加密种类:3.密码键盘操作4.工具 1.软加解密示例 ————————————————————————————————————————————------ 已知数据: 银行测试主密钥TMK: 1234567890ABCDEFABCDEF0987654321 通过签到接口得到: 工作密钥密文KeyVal...

老孟嘚吧嘚 6653

使用RSA非对称加密完成JavaScript前端分段加密和java后端分段解密

前言 最近研究了RSA非对称加密,关于什么是RSA,网上各种文章一搜一大把,但是关于如何使用RSA完成前后端的组合加密解密,东西就非常少了,并且由于RSA的特性,一个1024位的密钥只能加密117位字节数据,当数据量超过117位字节的时候,程序就会抛出异常,下面就给出如何完成前端RSA分段解密和后端RSA分段解密。 准备 前端RSA的JS类库jsencrypt-master 或 https://g...

ycb1689的专栏 6975

Colmap论文——《Structure-from-Motion Revisited》论文阅读笔记

  最近又将Colmap论文翻出来仔细阅读总结了一下,于是顺便写个博客记录一下。Structure-from-Motion Revisited是当前SOTA的增量式SfM算法Colmap的论文,发表于2016年计算机视觉顶会CVPR。它是增量式SfM里程碑式的作品。 论文地址:https://openaccess.thecvf.com/content_cvpr_2016/papers/Schonberger_Structure-From-Motion_Revisited_CVPR_2016_paper.p

zeeq的博客 1万+

RSA加密问题(jsencrypt加密 java解密)

我这篇博文就是记录我这2天来踩过的坑,为相关相同需求的朋友提供点帮助。 参考文章 http://blog.youkuaiyun.com/libraryhu/article/details/50821791 https://github.com/dqmmpb/rsa-demo https://github.com/travist/jsencrypt    ->     issue 首先

梁佳伟的专栏 1万+

CATIA文件的网页预览方案

CATIA是工业设计中广泛使用的专业软件,产出`.CATPart`或 `.CATProduct`等文件类型,当资产数量较大时,我们希望快捷预览这些文件,就有了`CATPart`文件网页预览的需求 但我们知道,网页上无法直接渲染`CATPart`这种复杂的文件, CATIA生成的文件(如 `CATPart` 和 `CATProduct`)不仅包含三维几何信息(例如点、线和曲面),还涵盖了丰富的元数据与专业设计特征。 那有没有办法,能实现CATIA文件在网页上的便捷预览?

weixin_44211633的博客 1449

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

火灾图像检测识别:cnn卷积神经网络 Adaboost 支持向量机 随机森林 决策树 完整代码数据

864

RSA前端加密,java后端解密

官网 jsencrypt :JSEncrypt encryptlong:encryptlong - npm 前端 1,安装 1.1 安装jsencrypt,执行以下命令 npm install jsencrypt --save-dev 1.2 安装encryptlong,执行以下命令: npm i encryptlong -S 2,创建rsa.js文件 2.1 在src/util/文件夹下创建rsa.js文件 2.2 引入‘jsencrypt’,‘encryptlong’ .

qq_1382430的博客 1万+

SVN使用:使用TortoiseSVN遇到提示请执行“清理”命令的解决方法

作为程序员来说,在团队开发过程中关于代码管理的工具使用并不陌生,比较常用的代码合并管理工具如:Git、SVN等,虽然相关工具的使用并不复杂,但是还是要掌握常用的使用方法,尤其是相关的第三方软件的使用也是极为重要的,而且有时候使用这些三方软件来进行代码管理的时候也会遇到一些问题。本篇博文就来分享一下在SVN使用的时候使用TortoiseSVN遇到提示请执行“清理”命令的解决方法,方便查阅使用。

全沾软贱开发攻城狮 1万+

RSA加密:Web前端登录账户密码加密传输

一般在做系统时候对安全性要求比较高,现在通常选择https协议来进行数据传输。很多情况下一般的javaweb网站,如果安全要求不是很高的话,用https协议就可以了。在这种情况下,密码的明文传输显然是不合适的,因为请求如果在传输过程中被截了,就可以直接拿明文密码登录网站了。 为了传输数据的安全、今天就采用RSA加密方式来进行加密。 实现方式思路: 编写加解密公共方法类--公钥方法--前端在向后台发起登录请求之前,先请求后台获取公钥的方法,然后经过加密之后再发起登录请求--前端代码需引入jse...

java李阳勇的博客 3万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

RSA非对称加密,前台vue加密,后台java解密

目录 前言 公钥和私钥的获取 公钥私钥例子 公钥 私钥 一、前端vue加密 1.1安装jsencrypt 1.2安装好后,在文件里引用 1.3 使用私钥加密 2.后端java解密 2.1调用代码 2.2 RSAUtils工具类 2.3RSAUtils运行结果 参考文档 前言 RSA加密非对称加密,简单理解为就是有一个私钥一个公钥,我们在前台用私钥进行加密,到后台以后再使用对应的公钥进行解密。(这一对公钥和私钥可以由后台实时生成,每次生成的公钥和私钥都不...

水蜜桃桃桃的博客 2672

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java+Vue对密码AES加密和RSA加密处理

Java+vue的AES加密和RSA加密实现

weixin_43887870的博客 4514

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

RSA加密 - Vue

前言 上一篇博客RSA加密 - Java实现了Java版的RSA公钥加密-私钥解密,私钥加密-公钥解密,这篇博客实现Vue下的加解密,记录两种前后端下加解密的场景 前端公钥加密 - 后端私钥解密 后端私钥加密 - 前端公钥解密 前端公钥加密-后端私钥解密 这种情况较为简单,是通用的做法 安装jsencrypt npm install jsencrypt RSAEncryption.js /** * 非对称加密-RSA * 前端公钥加密 - 后端私钥解密 * */ import JSE

Maggieq8324的博客 2210

vue 使用 RSA加密 + java 后端 RSA解密

vue 使用 RSA加密 + java 后端 RSA解密

Snh232428的博客 2355

RSA与AES:打造高效且超安全的混合加密方案

RSA结合AES混合加密,实现加密账号密码等,工具类代码。 RSA是**非对称加密**的一种,具有两个密钥:公共密钥和私有密钥。公钥和私钥是一对,公钥加密后的内容只有私钥才能解密。两个密钥的不同,所以是非对称的。

那仰望的人,心底的孤独和叹息 2369

前端rsa加密 java完美后台解密

已经上线的代码... 看着很多资源都不可使用 (js . java)源码的对应的加密处理也不一样 下载也要积分 .. 终于自己找了两天的代码 完全分享 .. 思路 : 后端生成 rsa 公钥放到页面上 秘钥存 session js公钥加密 后端私钥解密 ( 3. 存session的秘钥) try { KeyPair keyPair = RSAUtils2.generat...

qq_39807171的博客 762

angular使用RSA加密 用户名和密码 后端JAVA解密

RSA主要是生成公钥和私钥,公钥给前端加密,私钥用于解密。 1、先在angular中引入jsencrypt npm install --save jsencrypt 在index.html <script href="../node_modules/jsencrypt/bin/jsencrypt.min.js"></script> 2、访问后端接口获取一个公钥...

weixin_41133806的博客 1058

RSA 非对称加密解密,可以javascript和java加解密

RSA是一种使用不同的加密密钥与解密密钥的体制,不对称加密算法。公钥加密,私钥解密。RSA算法是先生成一对RSA密钥,其中之一是保密密钥,由用户保存;另一个为公开密钥,可对外公开,甚至可在网络服务器中注册。为提高保密强度,一般推荐使用1024位。...

yfx000的专栏 1415

RSA加密算法使用

1、RSA算法: import javax.crypto.Cipher; import org.apache.commons.codec.binary.Base64; import java.io.ByteArrayOutputStream; import java.security.*; import java.security.interfaces.RSAPrivateKey; imp...

远近 1176

vue前后端非对称加密jsencrypt实现

前端代码 Vue,其他框架自行修改,使用的是jsencrypt // 1.1 导入js import { JSEncrypt } from 'jsencrypt' created() { // 获取公钥 this.getKeyPairs() this.Encrypt = new JSEncrypt() }, methods: { // 获取公钥 getKeyPairs() { loginGetKeyPairs().then((pu.

kouhunzhe的博客 1921

AES和RSA加密解密(前后台交互)

一、

fds技术枭牛 1456
上一篇: StrutsPrepareAndExecuteFilter cannot be cast to javax.servlet.Filter
dwsMo2
博客等级 码龄11年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值