当前位置: 首页 > news >正文

哈尔滨专业网站建设公司搜索优化指的是什么

哈尔滨专业网站建设公司,搜索优化指的是什么,wordpress 换 ip,百度云搭建wordpressRSA私钥解密操作 一、背景二、操作三、常见问题3.1 invalid key format3.2 解密的数据太长3.3 Decryption error 一、背景 项目数据库中存放的敏感字段已使用rsa加密的方式,将内容加密成密文存放, 现在需要在使用的时候,使用私钥进行解密。 二、操作 …

RSA私钥解密操作

  • 一、背景
  • 二、操作
  • 三、常见问题
    • 3.1 invalid key format
    • 3.2 解密的数据太长
    • 3.3 Decryption error

一、背景

项目数据库中存放的敏感字段已使用rsa加密的方式,将内容加密成密文存放,
现在需要在使用的时候,使用私钥进行解密。

二、操作

代码如下:

public class RsaUtil {private static final int MAX_DECRYPT_BLOCK = 256;/*** 解密方法* @param content  需解密内容* @param privateKey 私钥* @return*/public static String decryptByPrivateKey(String content,String privateKey) {String decryptContent;try {PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.getDecoder().decode(privateKey));PrivateKey priKey  = KeyFactory.getInstance("RSA").generatePrivate(keySpec);//RSA解密Cipher cipher = Cipher.getInstance("RSA");cipher.init(Cipher.DECRYPT_MODE, priKey);log.info("provider:{}",cipher.getProvider());byte[] encryptedData = Base64.getDecoder().decode(content);int inputLen = encryptedData.length;ByteArrayOutputStream out = new ByteArrayOutputStream();int offSet = 0;byte[] cache;int i = 0;// 对数据分段解密while (inputLen - offSet > 0) {if (inputLen - offSet > MAX_DECRYPT_BLOCK) {cache = cipher.doFinal(encryptedData, offSet, MAX_DECRYPT_BLOCK);} else {cache = cipher.doFinal(encryptedData, offSet, inputLen - offSet);}out.write(cache, 0, cache.length);i++;offSet = i * MAX_DECRYPT_BLOCK;}out.close();decryptContent = out.toString();} catch (Exception e){log.error("rsa解密内容:"+content+"失败",e);throw new RsaException("rsa解密内容:"+content+"失败",e);}return decryptContent;}}

三、常见问题

3.1 invalid key format

错误信息如下:

Caused by: java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: invalid key formatat sun.security.rsa.RSAKeyFactory.engineGeneratePrivate(RSAKeyFactory.java:217)at java.security.KeyFactory.generatePrivate(KeyFactory.java:372)

原因:
私钥转成byte数组时没有使用base64解码的方式:
在这里插入图片描述

3.2 解密的数据太长

参考文章:
https://blog.csdn.net/qq_42795685/article/details/107517196

错误信息如下:

IllegalBlockSizeException: Data must not be longer than 256 bytes

解决:
采用分段解密的方式。具体请参考代码中分段解密注释的部分

3.3 Decryption error

参考文章:

  1. https://blog.csdn.net/a1017680279/article/details/79061412?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-79061412-blog-71627949.235%5Ev38%5Epc_relevant_anti_vip_base&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-79061412-blog-71627949.235%5Ev38%5Epc_relevant_anti_vip_base&utm_relevant_index=1

  2. https://juejin.cn/post/7182388540259450940

错误信息:

javax.crypto.BadPaddingException: Decryption error

原因:
代码中采取分段解密的方式时,配置的最大解密长度不正确,即以上代码中的MAX_DECRYPT_BLOCK 变量配置长度有问题;

解决:
MAX_DECRYPT_BLOCK应等于密钥长度/8(1byte=8bit),
“密钥长度”一般只是指模值的位长度。目前主流可选值:1024、2048、3072、4096,
我使用的密钥长度是2048,所以配置的最大解密长度应该是256。

http://www.hrbkazy.com/news/37415.html

相关文章:

  • 下城区做网站什么时候友情链接
  • 寿宁县建设局网站360推广登陆
  • 少儿编程自学网站百度爱采购怎样入驻
  • 做网站用什么技术好廊坊今日头条新闻
  • 律师事务所网站设计竞价推广是什么意思
  • 网站为什么要备案关键词app
  • 古云网站建设刷网站百度关键词软件
  • 博客网站做啥好网络整合营销策划书
  • 北京鑫旺路桥建设有限公司网站网站优化是做什么的
  • 网站主机推荐最新资讯热点
  • 株洲网络营销推广池州网站seo
  • 企业官网图片seo推广方案
  • 一个简单的动态页面网站需要数据库吗最近一周新闻热点回顾
  • 之梦英语版网站怎么做手机网站百度关键词排名查询
  • 有哪些做包装盒的网站常见的网络营销方式有哪几种
  • 网站建设维护培训网络营销策划
  • 网站访客qq系统小说网站排名前十
  • 网站开发项目进度表文案代写平台
  • app网站模板汕头自动seo
  • 什么网站有教做详情页网站页面
  • 南京网站优化推广杭州seo推广公司
  • 做知乎网站要多少钱关键词优化如何做
  • 网站登录不上怎么回事百度快照功能
  • 网站建设和app制作免费入驻的跨境电商平台
  • 锦江建设和交通局网站软文优化
  • 网站建设 朝阳区网络营销方法有哪些举例
  • 做外贸的阿里巴巴网站是哪个更好打开百度搜索网站
  • wordpress+培训行业主题百度推广优化怎么做
  • 网络公司怎么优化网站世界足球世界排名
  • 网站建设七大步骤外贸网站平台哪个好