linux下解密AES失败的问题

问题描述

我在linux系统下解密AES失败,上网查了资料说是加上下段代码就能解决://防止linux下随机生成keySecureRandomsecureRandom=SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(password.getBytes());但事实是我加上了这行代码,放到几台机器当中去试时发现,还是解密失败,有大侠遇到过吗?

解决方案

解决方案二:
kgen.init(128,secureRandom);这句改了么
解决方案三:
引用1楼yuejingdong的回复:

kgen.init(128,secureRandom);这句改了么

这句也加上了的,我用的是Centos64位的系统
解决方案四:
AES是对称加密,加密/解密的密钥是一个,你解密的时候需要知道密钥,而你贴出来到代码是生成强随机数的代码方法参考一下:http://blog.csdn.net/ustcxjt/article/details/7442830
解决方案五:
引用3楼tianfang的回复:

AES是对称加密,加密/解密的密钥是一个,你解密的时候需要知道密钥,而你贴出来到代码是生成强随机数的代码方法参考一下:http://blog.csdn.net/ustcxjt/article/details/7442830

我的加解密的密钥都是一样的:12345678加密方法:Stringtype="AES";KeyGeneratorkgen=KeyGenerator.getInstance(type);//防止linux下随机生成keySecureRandomsecureRandom=SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(password.getBytes());kgen.init(128,secureRandom);SecretKeysecretKey=kgen.generateKey();byte[]enCodeFormat=secretKey.getEncoded();SecretKeySpeckey=newSecretKeySpec(enCodeFormat,type);Ciphercipher=Cipher.getInstance(type);//创建密码器byte[]byteContent=content.getBytes("utf-8");cipher.init(Cipher.ENCRYPT_MODE,key);//初始化byte[]result=cipher.doFinal(byteContent);returnresult;//加密解密方法:KeyGeneratorkgen=KeyGenerator.getInstance(type);//防止linux下随机生成keySecureRandomsecureRandom=SecureRandom.getInstance("SHA1PRNG");secureRandom.setSeed(password.getBytes());kgen.init(128,secureRandom);SecretKeysecretKey=kgen.generateKey();byte[]enCodeFormat=secretKey.getEncoded();SecretKeySpeckey=newSecretKeySpec(enCodeFormat,type);Ciphercipher=Cipher.getInstance(type);//创建密码器cipher.init(Cipher.DECRYPT_MODE,key);//初始化byte[]result=cipher.doFinal(content);returnresult;//解密
解决方案六:
初步发现个问题,不知道是不是这个原因,大家帮我分析下:两台机器系统版本一样都是CentOS6.5,只是JDK版本不同,同样的代码在两台机器下面运行结果不同,如:jdk1.7.0_60运行代码结果正确jdk1.7.0_45运行代码结果错误运行错误的机器:(不知道是不是每次生成的强随机数种子不一样还是怎么回事)结果是每运行一次加密后,每次结果都不一样运行正确的机器:没有上述情况问题
解决方案七:
你的key既然是12345678传进去就是了不要再生成了cipher.init(Cipher.DECRYPT_MODE,key);//初始化这里key要把12345678转成byte[]传进去
解决方案八:
沉了?难道没人给点准确意见?jdk不同?

时间: 2025-01-18 20:45:33

linux下解密AES失败的问题的相关文章

acpi-ACPI Linux下poweroff关机失败,会再次启动(非重启)

问题描述 ACPI Linux下poweroff关机失败,会再次启动(非重启) 两台机子用直连线连接,利用网络唤醒使机子开机,然后关机被唤醒方,可以正常关机,再次网络唤醒,再次关机被唤醒方,这是关机后(风扇已停),机子会重新启动. 分析可能是BIOS没有将网卡状态即时清掉,通过询问BIOS方,BIOS在每次S5模式时会将网卡状态sts清掉.BIOS中ACPI是处于S3模式下的. 请问会不会跟BIOS没有处理S3模式有关?linux下poweroff命令关机时,用到的是哪个模式关机? 附:wind

linux下adb连接失败的怎么解决

不管是在Windows系统还是在Linux系统中,相信不少用户或开发者都遇到过手机adb连接不上的情况.其实出现这种问题很多时候是由于 adb冲突导致的,毕竟很多软件都有自己的adb链接.那么,出现这种问题该怎么办呢?下面就给大家介绍下Mac或者linux下adb连接失败的解决办法. 1.查看设备VenderID 在mac下 或者Linux打开终端(Terminal),linux下可以按快捷键(CTRL+T,忘了具体是不是大家去试试或者查查),mac下Control+space,输入Termin

Linux下读取文件失败

问题描述 这是我的读取代码: public static List<String> addFileToList(String bKFilePath) {BufferedReader bkFile = null;List<String> list = new ArrayList<String>();try {LOG.debug("bKFilePath:"+bKFilePath);boolean isReadable=new File(bKFilePat

Linux或者Mac下adb连接失败如何解决

不管是在Windows系统还是在Linux系统中,相信不少用户或开发者都遇到过手机adb连接不上的情况.其实出现这种问题很多时候是由于adb冲突导致的,毕竟很多软件都有自己的adb链接.那么,出现这种问题该怎么办呢?下面就给大家介绍下Mac或者linux下adb连接失败的解决办法. 1.查看设备VenderID 在mac下 或者Linux打开终端(Terminal),linux下可以按快捷键(CTRL+T,忘了具体是不是大家去试试或者查查),mac下Control+space,输入Termina

DES加密 windws上加密,linux不能解密

问题描述 我在windows上做的加密到linux上解密总是失败,报java.lang.Exception:padblockcorrupted 解决方案 解决方案二:如果代码不保密的话,请贴出相关DES加密和解密的代码,以及测试用的原文数据.加密密钥,以及你在Windows上用该密钥和原文进行DES加密后的密文.解决方案三:引用1楼bao110908的回复: 如果代码不保密的话,请贴出相关DES加密和解密的代码,以及测试用的原文数据.加密密钥,以及你在Windows上用该密钥和原文进行DES加密

java socket 在linux环境接收报文失败

问题描述 java socket 在linux环境接收报文失败 新建了一个socket链接,windows环境下一切正常. 部署到LINUX环境下时,如果是简短的报文,服务端接收也是没问题的. 但是如果报文长度超过一定值(注:在windows下成功接收的报文), 在LINUX下却接收失败! 求解! 解决方案 检测socket是否断开 解决方案二: 能不能上代码看看,你给的信息还是太少了,不太好确定啊

服务器-linux下root用户切换到普通用户执行ssh远程登录失败

问题描述 linux下root用户切换到普通用户执行ssh远程登录失败 这样,我想做一个web一件抓取日志的小程序,后台python调用ssh登录到远程主机执行系统命令抓取符合条件的日志,这个程序集成在一个运行在root下的web站中,然而服务器 设定了root用户不能用ssh远程登录.我想请教是否可能在程序中切换到普通用户登录ssh远程登录其他主机执行ssh命令,然后再切回root...或者是否有其他好的方法来实现这一 功能.(很多台服务器,一次性抓取符合条件的日志) 解决方案 linux下如

linux下使用crontab实现定时PHP计划任务失败的原因分析_php技巧

很多人在linux下使用crontab实现PHP执行定时任务却未能成功,不能生成缓存.本文就linux下使用crontab实现定时PHP计划任务失败的原因做一分析. 一般我们linux定时执行php代码例如: */5 * * * * /usr/local/php/bin/php /home/wwwroot/1.php 其实这样是可以执行php代码的. 但是为什么很多朋友在1.php写的生成一个缓存文件没有生成呢? 这个要涉及到crontab执行php的相对路径问题. 注意在执行文件中,有包含文件

linux下 java打成jar包运行,压缩文件失败

问题描述 linux下 java打成jar包运行,压缩文件失败 linux下 java打成jar包运行,压缩文件失败(java程序内有压缩文件处理).但是在linux下,用eclipse执行的话,压缩文件成功.求大神!!!! 解决方案 还是要查看你的具体错误信息,是不是命令路径等没设置跟Eclipse一样