java红宝石是哪本_AES Java编码,红宝石解码

我正在尝试对java中的AES数据进行编码,通过网络发送数据并以ruby对其进行解码。

基本字符串可以正常工作,但是一旦字符串的长度为16个字节或更多,我在解码后的红宝石字符串的编码中就会产生垃圾。我猜想它与填充有关(虽然不确定,因为它甚至影响精确大小为16的字符串)

我尝试使用PKCS或只是在字符串的末尾添加空格以匹配确切的长度而没有运气

还可以有人解释为什么我必须在红宝石中执行“ aes-256-cbc”,因为我知道我的Java代码使用aes

128吗?在Ruby中尝试AES-128-CBC对任何字符串都不起作用

任何帮助是极大的赞赏

这是我的基本代码

爪哇

byte[] raw = key.getBytes();

SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");

Cipher cipher = Cipher.getInstance("AES");

cipher.init(Cipher.ENCRYPT_MODE, skeySpec);

byte[] encrypted = cipher.doFinal(str.getBytes());

return new BASE64Encoder().encode(encrypted);

红宝石

def aes_decrypt(key, encrypted)

decipher =OpenSSL::Cipher::Cipher.new("aes-256-cbc")

decipher.decrypt

decipher.padding = 0

decipher.key = key

d = decipher.update(encrypted)

d << decipher.final

logger.debug "email #{d.to_s}"

return d.to_s

end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值