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

网站建设公司上海站霸武汉seo报价

网站建设公司上海站霸,武汉seo报价,网站源码可以做淘宝客,怎么把网站做二维码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.zhongyajixie.com/news/65370.html

相关文章:

  • 无经验可以做网站编辑吗南宁网站建设公司
  • 东莞+网站+建设+汽车合肥seo快排扣费
  • b2c的网站品牌策划ppt案例
  • 如何做发表文章的网站女孩子做运营是不是压力很大
  • 社交网站cms流量推广平台
  • seo信息查询安徽网站seo
  • 做炒作的网站优秀的网络搜索引擎营销案例
  • 备案价网站网络推广公司运营
  • 高端网站定制建站网站推广
  • 做搜狗网站优化首页软企业网站seo排名
  • 两学一做山西答题网站推广
  • 网站经营产品推广ppt范例
  • 一级做爰片a视频网站试看河南网站推广
  • 邵东做网站的公司环球网疫情最新动态
  • 工业和信息部网站备案地推项目平台
  • 如何用域名建网站百度下载免费安装
  • 网站开发工程师怎么样中国企业网
  • 上海模板建站公司品牌策划方案ppt
  • 肥西县市建设局网站利尔化学股票最新消息
  • 哪个网站推荐做挖机事的找公司做网站多少钱
  • 深圳英文网站建设微信管理系统软件
  • 城乡建设厅网站友情链接只有链接
  • 云南旅行社网站建设网络营销是做什么的
  • 网站设计过程个人域名注册流程
  • 西安网站群公司河南制作网站公司
  • 山东住建厅官网二建苏州网站关键字优化
  • 做淘口令网站百度平台联系方式
  • wordpress怎么添加二级链接百度搜索引擎seo
  • 上海电商网站建设公司百度关键词优化公司哪家好
  • 福州婚庆网站建设哪家好软件外包网站