调过一个加密程序,后台用c++ openssl aes cfb 128加密的,用java写的加密程序发到后台怎么都解密不了,后改用java调jni c 的openssl加密才解决。现在发现是java这边加密写的有问题,正确的加密如下,解密类似。
public static final byte[] DEFAULT_KEY = { (byte) 0xF3, (byte) 0x62, (byte) 0x12, (byte) 0x05, (byte) 0x13, (byte) 0xE3, (byte) 0x89, (byte) 0xFF, (byte) 0x23, (byte) 0x11, (byte) 0xD7, (byte) 0x36, (byte) 0x01, (byte) 0x23, (byte) 0x10, (byte) 0x07, (byte) 0x05, (byte) 0xA2, (byte) 0x10, (byte) 0x00, (byte) 0x7A, (byte) 0xCC, (byte) 0x02, (byte) 0x3C, (byte) 0x39, (byte) 0x01, (byte) 0xDA, (byte) 0x2E, (byte) 0xCB, (byte) 0x12, (byte) 0x44, (byte) 0x8B }; private static final byte[] AES_IV = { 0x15, (byte) 0xFF, 0x01, 0x00, 0x34, (byte) 0xAB, 0x4C, (byte) 0xD3, 0x55, (byte) 0xFE, (byte) 0xA1, 0x22, 0x08, 0x4F, 0x13, 0x07 }; SecretKeySpec secretKeySpec = new SecretKeySpec(DEFAULT_KEY, "AES"); IvParameterSpec paramSpec = new IvParameterSpec(AES_IV); Cipher ecipher; ecipher = Cipher.getInstance("AES/CFB/NOPADDING"); ecipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, paramSpec); byte[] result = ecipher.doFinal(content.getBytes()); return result;
另外,pc java默认的jar包不支持256加密,即32位密钥。要到官网下载jar包替换java_home/jre/lib/security下的jar包才可以。android 默认支持256位加密。
相关推荐
完整能运行的java AES源代码,需要官网手工下载local_policy.jar 和 US_export_policy.jar文件覆盖java安装目录的文件,才能使用CFB模式。下载地址为: ...
C#加密 解密对接java 的加密AES/CBC/PKCS7Padding 转16进制 C#加密解密中的详细整理
AES算法的实现有四种,例如CBC / ECB / OFB / CFB,四种Java和C实现。 AES算法和末尾的填充(padding),有三种Java填充NoPadding / PKCS5Padding的支持方式,并且C没有显式设置填充模式,默认是在末尾添加'\ 0'。 ...
使用ECB,CBC,CFB,OFB,CTR五种模式进行AES加密解密
java-video-encryptor 使用AES 128位的Java视频加密器JVE(Java视频加密器)是一个非常简单的Java Swing应用程序,可用于通过AES 128位保护视频文件(目前仅适用于.mp4类型)。 将来,我将添加更多功能,例如: 多种...
Java实现的AES程序.可以加密字符串。只需稍作修改就可以实现不同的模式,CBC OFB CFB CTR等模式。
使用的加密算法是CBC和CFB模式下的AES。 主要出于兼容性原因,未提供其他模式(.NET Framework)。 密文的真实性已通过HMAC SHA256进行了验证。 加密的数据包含salt,iv和mac,其格式为:salt [16] + iv [16] +密文...
用jni-c(包含jni实现方式) 和 纯 java方式 实现 AES 加解密,各有千秋。 1.电码本模式( Electronic Codebook Book (ECB) 这种模式是将整个明文分成若干段相同的小段,然后对每一小段进行加密。 2.密码分组链接...
一、简介 1.aes加密简单来说,在密码学中又称Rijndael加密法,是美国联邦政府采用的一...包括AES-ECB,AES-CBC,AES-CTR,AES-OFB,AES-CFB。 3.在这里我们只接受常用的ECB方式 + pkcs7padding(与pkcs5padding值相同)填充
3des java源码Haxe ...分叉自: 这是从以下分叉出来的: 原始项目可以在 虽然是非官方的,但这个 GitHub-fork 包括社区修复和补丁。...密钥加密:AES、DES、3DES、BlowFish、XTEA、RC4 保密模式:ECB、CBC、CFB
eclipfs EclipFS是为WAN构建的分布式文件系统设计目标和功能WAN连接速度很慢(仅5mbit / s的上传速度可以)。... 在将数据发送到组块服务器之前,使用带有共享密钥的AES-128-CFB在客户端对数据进行加密。