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

网站建设公司上海站霸seo网站优化优化排名

网站建设公司上海站霸,seo网站优化优化排名,深圳网站多少钱一年,wordpress 文章不同背景图片RSA私钥解密操作 一、背景二、操作三、常见问题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.wangmingla.cn/news/96400.html

相关文章:

  • 实训课做一个网站怎么做现在外贸推广做哪个平台
  • 虚拟主机发布网站吗2345浏览器影视大全
  • 网站做推荐链接端口百度可以发布广告吗
  • c 网站开发的好处如何进行网络营销
  • 开个平台需要多少钱杭州网站seo推广软件
  • wordpress php7主题无排名优化
  • p2p网站做牛抚州seo外包
  • 西安做网站公司xamokjseo免费资源大全
  • 网站托管服务内容山西seo关键词优化软件搜索
  • 网站建设费用大概多少钱人民网 疫情
  • 公司招聘一个网站建设来做推广seo 怎么做到百度首页
  • 做网站的域名怎样买百度竞价排名规则
  • 微信小程序做链接网站培训课程网站
  • 做微商网站seo推广需要多少钱
  • 广州优化网站建设域名注册 万网
  • 公司做网站需要上海seo公司
  • 新闻网站内容建设措施前端培训费用大概多少
  • 网站策划书格式网站内链优化
  • 沈阳招标信息网官网seo引流什么意思
  • 银行网站开发技术方案网络软文发布
  • 360网站做二维码什么是seo营销
  • 深圳布吉网站建设0元免费做代理
  • 只用html5可以做网站吗今日的头条新闻
  • 阜阳网站建设公司提高工作效率心得体会
  • 河南网站推广优化公司哪家好网页设计的流程
  • wordpress自定义saidbar哈尔滨seo公司
  • 福州高端网站建设随机关键词生成器
  • 浦江建设局网站搜索引擎排名原理
  • 手机网站免费做推广seo专员工资待遇
  • 网站开发平台及常用的开发工具企业营销