什么因素会影响rsa解密的结果?

问题描述: 做了一个运维平台,涉及到ssh密码的保存,在程序的调用过程中涉及到加密和解密,奇怪的是本地的加密解密都没有问题,但是把程序放到linux的机器上(以docker的形式部署就出问题了,同样的代码,居然解密为空.....) 这就导致后续的程序直接执行报错了....

image.png

代码很简单就是从数据库查询出密码的密文,然后解密同样的代码,在测试环境解析的为空

百思不得其解,看了一下时区,编码集是一致的(zh_CN.UTF-8)

rsa用的是hutool的工具类

docker-compose.yml 文件如下


  opde:
    container_name: opde
    image: openjdk8-tomcat8:latest
    volumes:
      - ./bim/opde:/opde
      - ./bim/home:/bim
      - ./bim/opde-logs:/home/opde-logs
    entrypoint:
      ["java","-jar","/opde/opde.jar"]
    environment:
      spring.config.location: /opde/application.yml
      TZ: Asia/Shanghai
      LANG: zh_CN.UTF-8
    network_mode: "host"
    cap_add: 
        - NET_ADMIN
    restart: always

这个真的无从下手......求大佬支招

阅读 2.2k
1 个回答

我认为几个点可以排查,排名按我认为的概率分先后

  1. 确认下rsa加密用的公钥和解密用的私钥,在本地环境和线上环境是否同一份,如果不同或需求需要不同,那么确保加密用的公钥和解密用的私钥是一对
  2. 确认jdk版本是否一致
  3. 确认hutool版本是否一致
  4. 确认下loginDTO.getPassword()的返回值本地和线上环境是否一致
已参与了 SegmentFault 思否社区 10 周年「问答」打卡 ,欢迎正在阅读的你也加入。
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题