RSA非对称加密算法工具类

RSA非对称加密算法

工具类

package com.safedog.datasafe.system.utils;import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.asymmetric.AsymmetricAlgorithm;
import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;import java.security.KeyPair;/*** @author xrp*/
public class RsaUtil {/*** 私钥和公钥*/private static String privateKey ="MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIquJdhq+eFMtAqLHbjb9LpAthtBcV/KFsE8PO9lejKIbE8VaQ67fElvZQR0MH+PirEH4nETHwgBIy0es7Ftuop3aG0nx4uqVeBvHHJnBO/kX/2oU013zoACpIyFj0zycYOnYW63fjhKjLS7vJxTE1cZugIAlSaSJ9DRr6rvI5YvAgMBAAECgYANKxIe5bGKii0CX0lYN1KaqPBh0CoCzX6xpJWoqbsbt0aJj9/k7TqVAoXWEW5VfnzN6JDA6e7lZK5BZ4vqih/PSFKAjh99+ZscrWbhpWbApdZKEJtpjWAqeO3wstBTWBYIJrbfI0QTAR3RsVLiZht85RKGHe6Osaz13rmxhn4oiQJBAMDHpdOgRhV+/qeIcX2TUJcAYjErN0Cjpp/djAyMiOZNuExbpx0edztOEYJujQJOoGDgCusLI4OW79kLSnWFvI0CQQC4KLPi0Sqh1deD4jRSiMfhg1GgpRkFhpevW9p4uMswPkb8He8B3ijCh7S+HWfDDbutO73iS399KIf2ULFDCjSrAkB9CsKf4wyycr4g0tqyVjRmzYPjWqGrFrtEZIKrvRgrMexB8w0RUSqLWBb5YFWsUm2qiIfsbzwo5WVLhgxU8FsdAkB26SlGIsNBXj/bk5svU8ykq9NwREqEy+RzwX6vBruEeiIBtx5V+WoeOdwWCgyu4NY3RGUWkqNOYHZyMKZU4GkjAkEAlAL09WVrvMnqBRfvyL9CTKV16nEQ3wjbWSW2AqAqwyQZ4xjRultsE0XFnyCzVylVTPArR5nhDIt+US7lqsyy0w==";private static String publicKey ="MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCKriXYavnhTLQKix242/S6QLYbQXFfyhbBPDzvZXoyiGxPFWkOu3xJb2UEdDB/j4qxB+JxEx8IASMtHrOxbbqKd2htJ8eLqlXgbxxyZwTv5F/9qFNNd86AAqSMhY9M8nGDp2Fut344Soy0u7ycUxNXGboCAJUmkifQ0a+q7yOWLwIDAQAB";/*** 生成公私钥*/public static   void getKey() {KeyPair pair = SecureUtil.generateKeyPair("RSA");privateKey = Base64.encode(pair.getPrivate().getEncoded());System.out.println("私钥\t" + privateKey);publicKey = Base64.encode(pair.getPublic().getEncoded());System.out.println("公钥\t" + publicKey);}public static String encrypt(String text) {RSA rsa = new RSA(AsymmetricAlgorithm.RSA_ECB_PKCS1.getValue(), privateKey, publicKey);// 公钥加密,私钥解密return rsa.encryptBase64(text, KeyType.PublicKey);}public static String decrypt(String text) {//解密RSA rsa = new RSA(AsymmetricAlgorithm.RSA_ECB_PKCS1.getValue(), privateKey, publicKey);return rsa.decryptStr(text, KeyType.PrivateKey);}}

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

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

相关文章

flask数据库操作

本文将详细介绍在Flask Web应用中如何设计数据库模型,并使用Flask-SQLAlchemy等扩展进行数据库操作的最佳实践。内容涵盖数据模型设计,ORM使用,关系映射,查询方法,事务处理等方面。通过本文,您可以掌握Flask数据库应用的基本知识。 Flask作为一个流行的Python Web框架,提供了高…

什么是架构 架构图

如何画架构图_个人渣记录仅为自己搜索用的博客-CSDN博客 什么是架构?要表达的到底是什么? Linus 03 年在聊到拆分和集成时有一个很好的描述: I claim that you want to start communicating between independent modules no sooner than you…

CAN转ETHERCAT网关将CAN 总线和 ETHERCAT 网络连接方法

由于好多现场会出现将CAN总线的设备接到EtherCAT网络中,由于协议的不相同,不能直接进行连接,现需一种能同时兼容CAN 总线和ETHERCAT网络的一种设备,由此捷米JM-ECT-CAN 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要…

Selenium开发环境搭建

1.下载Python https://www.python.org/downloads/ 下载下来选择自己创建的路径进行安装,然后配置环境变量 cmd命令框查看 2.安装selenium cmd命令框输入: pip install selenium3.下载pycharm https://www.jetbrains.com/pycharm/download/#sec…

CSDN 编程竞赛六十五期题解

竞赛总览 CSDN 编程竞赛六十五期:比赛详情 (csdn.net) 吐槽:本期问题较多,体验较差。 竞赛题解 题目1、数组排序 给你一个整数数组 nums,请你将数组按照每个值的频率降序排序。如果有多个值的频率相同,请按照数值…

Helm KinD kubectl krew Istio急速安装

本篇更新网上许多安装失效的工具,如krew和KinD。 本篇测试使用时间为2023/7/20,基本都为最新版本或最新稳定版本。 前置 Helm 是 Kubernetes 的一个包管理工具,用于简化 Kubernetes 应用的部署和管理。Helm 使用名为 "chart" 的打…

搭建测试平台开发(一):Django基本配置与项目创建

一、安装Django最新版本 1 pip install django 二、创建Django项目 首先进入要存放项目的目录,再执行创建项目的命令 1 django-admin startproject testplatform 三、Django项目目录详解 1 testplatform 2 ├── testplatform  # 项目的容器 3 │ ├──…

getInputStream has already been called for this request 问题记录

问题背景 HttpServletRequest.getReader() HttpServletRequest.getInputStream() 不能在过滤器中读取一次二进制流(字符流),又在另外一个Servlet中读取一次,即一个InputSteam(BufferedReader)对象在被读取完成后,将无…

Spark SQL报错: Task failed while writing rows.

错误 今天运行 Spark 任务时报了一个错误,如下所示: WARN scheduler.TaskSetManager: Lost task 9.0 in stage 3.0 (TID 69, xxx.xxx.xxx.com, executor 3): org.apache.spark.SparkException: Task failed while writing rows.at org.apache.spark.sq…

JAVA的回调机制、同步/异步调用

一、同步调用 同步调用是最基本的调用方式。类A的a()方法调用类B的b()方法,类A的方法需要等到B类的方法执行完成才会继续执行。如果B的方法长时间阻塞,就会导致A类方法无法正常执行下去。 二、异步调用 如果A调用B,B的执行时间比较长&#…

Linux系统下U盘打不开: No application is registered as handling this file

简述 系统是之前就安装好使用的Ubuntu14.04,不过由于某些原因只安装到了机械硬盘中;最近新买了一块固态硬盘,所以打算把Ubuntu系统迁移到新的固态硬盘上; 当成功的迁移了系统之后发现其引导有点问题,导致多个系统启动不…

区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测

区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测 目录 区间预测 | MATLAB实现QRBiGRU双向门控循环单元分位数回归多输入单输出区间预测效果一览基本介绍模型描述程序设计参考资料 效果一览 基本介绍 MATLAB实现QRBiGRU双向门控循环单元分位数回归…

C++队列queue用法详解

一、定义 queue是一种容器转换器模板&#xff0c;调用#include< queue>即可使用队列类。 二、queue初始化 queue<Type, Container> (<数据类型&#xff0c;容器类型>&#xff09; 初始化时必须要有数据类型&#xff0c;容器可省略&#xff0c;省略时则默认为…

golang 时间工具类

用不习惯也嫌麻烦每次都去操作时间&#xff0c;然后就自己写了个时间工具类 package timeutilimport ("time" )func New() *TimeUtil {return &TimeUtil{} }// TimeUtil 是时间操作工具类 type TimeUtil struct{}// GetFormattedDate 获取格式化的日期字符串 fun…

MySql004——MySQL 数据类型

和Java中的数据类型一样&#xff0c;MySQL中的字段也有数据类型一说 一、数值类型 类型 大小 范围&#xff08;有符号&#xff09; 范围&#xff08;无符号&#xff09; 用途TINYINT 1 Bytes (-128&#xff0c;127) (0&#xff0c;255) 小整…

团队任务管理器工具推荐:三款适合协作工作的首选

如果您是项目经理或领导一个小团队&#xff0c;那么每天要完成的任务列表似乎无穷无尽。对于任何规模的公司来说&#xff0c;在不依赖任何软件的情况下掌握任务管理的不同方面都是一项挑战。满足您项目管理需求的正确软件可以显著提高团队的生产力——无论您的团队规模或项目范…

微软亚研院提出模型基础架构RetNet或将成为Transformer有力继承者

作为全新的神经网络架构&#xff0c;RetNet 同时实现了良好的扩展结果、并行训练、低成本部署和高效推理。这些特性将使 RetNet 有可能成为继 Transformer 之后大语言模型基础网络架构的有力继承者。实验数据也显示&#xff0c;在语言建模任务上&#xff1a; RetNet 可以达到与…

使用贝叶斯滤波器通过运动模型和嘈杂的墙壁传感器定位机器人研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

ElasticSearch学习之ElasticSearch快速入门实战

1.先“分词” 2.倒排索引&#xff08;前提是分词&#xff09; ElasticSearch官网地址&#xff1a;欢迎来到 Elastic — Elasticsearch 和 Kibana 的开发者 | Elastichttps://www.elastic.co/cn/ 一、下载 下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-re…