前言:
如果我们使用IBM的JDK,然后采用私钥进行RSA加密,就可能报错,如下:
java.security.InvalidKeyException: Private key cannot be used to encrypt.at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)at java.lang.Thread.run(Thread.java:777)at com.ibm.crypto.provider.RSASSL.engineInit(Unknown Source)at javax.crypto.Cipher.init(Unknown Source)at javax.crypto.Cipher.init(Unknown Source)at java.security.Signature$CipherAdapter.engineInitSign(Signature.java:1239)at java.security.Signature$Delegate.init(Signature.java:1116)at java.security.Signature$Delegate.chooseProvider(Signature.java:1076)at java.security.Signature$Delegate.engineInitSign(Signature.java:1140)at java.security.Signature.initSign(Signature.java:522)at net.vx4.lib.tls.core.TLSSignature.createSignature(TLSSignature.java:120)

看到这个错误,我们很好理解,就是私钥不能用于RAS加密:

Private key cannot be used to encrypt.

其实IBM JDK这么做也是有道理的,如果我们采用公钥加密,那么只有拥有私钥的人,才能解密,这样信息是绝对安全的。可是如果我们用私钥加密,那么任何拥有公钥的人,都能解密,这样信息是不安全的。不过有时候也需要这么做,因为可以保证消息的可靠性。

所以默认情况下,IBM JDK这么做,也是完全可以理解的。那我们需要采用私钥加密,那要怎么办?
只需要添加这个属性就可以了:-Dcom.ibm.crypto.provider.DoRSATypeChecking=false
那么如何在Bluemix上解决这个问题,好吧,CF又来了,又是2行命令,修改环境变量:
cf set-env  [Your App's Name]   IBM_JAVA_OPTIONS "-Dcom.ibm.crypto.provider.DoRSATypeChecking=false"
cf restage  [Your App's Name]

执行成功以后,在Bluemix官网中,就能看到“环境变量”里的“用户自定义”里看到刚才设置的环境变量,上上篇的博客里已经提到了,这里不再啰嗦。

Bluemix RSA Private key cannot be used to encrypt相关推荐

  1. python脚本 通过rsa private key 生成 publickey

    说明:蓝色=命令名称 浅绿=命令参数 浅蓝=选项 紫色=目录 系统环境:CentOS  5.5 x86_64 python版本:Python 2.7.3 参考paramiko和pycrypto官方文档 ...

  2. RSA密钥BEGIN CERTIFICATE、BEGIN RSA PRIVATE KEY和BEGIN PRIVATE KEY的区别

    最近在用RSA做签名校验,遇到个坑,对方给的RSA密钥一直不能解析成PublicKey对象, 他们那边使用PHP可以直接使用,我这边是用java代码却用不了,百度相关的资料也很少, 后来才发现是RSA ...

  3. Go-加密学(六) - BEGIN CERTIFICATE、BEGIN RSA PRIVATE KEY和BEGIN PRIVATE KEY的区别

    目录 1.1.-----BEGIN CERTIFICATE-----格式密钥: 1.2.-----BEGIN RSA PRIVATE KEY-----格式: 1.3.-----BEGIN PRIVAT ...

  4. 支付宝 报错 rsa_private read error : private key is NULL解决方法

    原因:  真机调试IOS支付宝功能GDB出现 rsa_private read error : private key is NULL提示 调试iOS 支付宝SDK的时候,执行demo.把 Partn ...

  5. 【原创】浅析密码学在互联网支付中的应用|RSA,Hash,AES,DES,3DES,SHA1,SHA256,MD5,SSL,Private Key,Public Key...

    一)概述 什么是互联网支付? 当支付遇到互联网,一场革命自然不可避免.成为现实的是传统的现金支付已经"退居二线",各种在线支付方式成为人们日常消费的主要支付方式.银行推出的网银以及 ...

  6. Git 多台电脑共用SSH Public/Private Key

    2019独角兽企业重金招聘Python工程师标准>>> 好了,下面一步一步来实现SSH Public/Private Key的在多台电脑中的共用: 0. 首先我们给旧的MBP起名叫O ...

  7. Generate public key from private key in keychain

    ref link: http://stackoverflow.com/questions/16847081/i-lost-my-public-key-can-i-recover-it-from-a-p ...

  8. Xshell配置密钥公钥(Public key)与私钥(Private Key)登录

    ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步: 1.生成密钥 ...

  9. Linux usbkey自动登陆,使用public/private key让putty(ssh)自动登录(以及linux上使用密钥做ssh自动登陆)...

    方法一:使用puttygen.exe 第一步:生成密匙 运行puttygen.exe,选择需要的密匙类型和长度,使用默认的SSH2(RSA),长度设置为1024就可以了. passphrase可以为空 ...

  10. Xshell配置ssh免密码登录-密钥公钥(Public key)与私钥(Private Key)登录

    ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,这里介绍密钥认证方式登录到linux/unix的方法. 使用密钥登录分为3步: 1.生成密钥 ...

最新文章

  1. 如何在PHP中保护数据库密码?
  2. 神经网络的分类行为怎么就不能是一种力的行为?
  3. acid四大特性_深入理解MySQL的ACID四大特性原理
  4. 【C#公共帮助类】 Image帮助类
  5. oracle视图能用etl工具_今日干货:口碑最好的五款BI工具
  6. Vue中的三种Watcher
  7. C++_IO与文件5-文件的输入与输出
  8. 【Elasticsearch】 es Bootstrap Checks Failed
  9. pytorch 语义分割loss_关于pytorch语义分割二分类问题的两种做法
  10. JasperReport报表导出PDF中文不显示的问题
  11. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  12. java redis 字节_Redis Java
  13. 网易云通讯与视频_总结_00_资源帖
  14. 深度学习图像标签标注软件labelme超详细教程
  15. 进程间通讯(IPC)(有信号捕捉函数)
  16. Lineage OS15.1 for sagit 编译
  17. nps+Proxifier搭建socks5代理隧道进行内网穿透
  18. 想开服,又没有技术怎么办?传奇开服技术要学多久?开服技术好学吗
  19. ErrorException : Use of undefined constant LARAVEL_START - assumed 'LARAVEL_START'
  20. 极智AI | 谈谈几种量化策略:MinMax、KLD、ADMM、EQ

热门文章

  1. html基本标记练习钱塘湖春行,《钱塘湖春行》练习题及答案
  2. 按键精灵定义全局变量_按键精灵全局环境变量
  3. TOEFL wordlist 16
  4. 联结全球技术桥梁,TGO 鲲鹏会台北分会将于 6/24 成立
  5. 关于南京市大学生办理住房补贴的流程示意图
  6. 企业私有云建设需求分析
  7. linux定时启动python脚本,linux定时执行python脚本
  8. 列宽一字符等于多少厘米_excel里面的列宽和行高单位是多少?多少等于1厘米?怎么对比的?...
  9. 迪文屏DMT12800K070_A2WTC踩坑实录(二)
  10. 【设计】计数(一)基数计数