`
zuoshu
  • 浏览: 196053 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

java aes cfb 256加密

 
阅读更多

调过一个加密程序,后台用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位加密。

分享到:
评论
2 楼 zuoshu 2013-04-12  
zjdzhayq 写道
你好,请问如果是 256位加密该如何操作呢,我查看了网上的例子都是随机生成的key,我想用我自己的一个固定的key!

按照代码里面的写,用自己的key换DEFAULT_KEY,还要自己再生成一个iv,换AES_IV
1 楼 zjdzhayq 2013-04-08  
你好,请问如果是 256位加密该如何操作呢,我查看了网上的例子都是随机生成的key,我想用我自己的一个固定的key!

相关推荐

    Java 实现AES之CBC/CFB模式的加密解密源码

    完整能运行的java AES源代码,需要官网手工下载local_policy.jar 和 US_export_policy.jar文件覆盖java安装目录的文件,才能使用CFB模式。下载地址为: ...

    AES256加密及解密

    Bouncy Castle库不仅支持标准的JCE(Java Cryptography Extension),还提供了额外的加密算法和协议,使得开发者能够轻松地在Java应用中实现AES256加密。 "javabase64-1.3.1.jar"则是一个Base64编码/解码库,用于将...

    java的AES加密解密

    Java中的AES(Advanced Encryption Standard)加密解密是信息安全领域中常用的一种对称加密技术。AES在数据保护、网络通信和存储安全中发挥着重要作用。它以其高效性和安全性,被广泛应用于各种软件开发中。本篇将...

    Java AES128加密解密

    Java中的AES128加密解密是信息安全领域中常见的数据保护技术。AES,全称Advanced Encryption Standard,是一种块密码标准,被广泛应用于各种场景,包括网络传输、存储数据加密等。128位是AES的一个关键参数,表示...

    可互操作的Java和JavaScript AES/128/192/256加密算法代码

    本主题主要关注的是如何在Java和JavaScript之间实现可互操作的AES(Advanced Encryption Standard)加密算法,这涉及到128、192和256位的密钥长度。AES是一种广泛应用的块密码,以其高效性和安全性著称,广泛用于...

    Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes

    本资源"Delphi.rar_AES_AES加密_delphi AES加密_delphi 加解密_java delphi aes"提供的是在Delphi编程环境中实现AES加密和解密的示例代码,其目标是与Java平台上的加解密过程保持兼容。 首先,让我们深入了解一下...

    java 基于AES实现对文件的加密 解密

    在Java编程语言中,AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,用于保护数据的安全性。本文将深入探讨如何使用AES实现文件的加密和解密过程。 首先,理解AES的基本原理至关重要。AES是一种...

    JAVA实现AES加密和解密

    首先,AES加密算法有多种工作模式,如ECB(Electronic Codebook)、CBC(Cipher Block Chaining)、CFB(Cipher Feedback)等。在描述中提到的是AES/ECB/PKCS5Padding,其中ECB是最基础的工作模式,不涉及前一个块的...

    AES加密.rar java Aes加密方式

    Java平台提供了丰富的库支持AES加密,使得开发人员可以方便地在Java应用程序中集成这种强大的加密技术。 在Java中实现AES加密,主要涉及到以下几个关键步骤和知识点: 1. 密钥生成:AES加密需要一个密钥来执行加...

    java .net AES加密不兼容问题:

    加密过程通常包括选择一个密钥(128、192或256位),一个IV(用于增加加密的随机性)以及一个加密模式(如ECB、CBC、CFB等)。在Java和.NET中,虽然AES的算法是标准化的,但具体实现的API可能有所不同,导致加密结果...

    AES-test.rar_AES_AES加密 java_aes java_aes文本_java aes

    标签“aes加密_java aes_java aes文本 java_aes”表明这个示例可能涵盖了AES加密的基本概念,如何在Java代码中实现,以及如何处理文本数据。具体到“AES-test.rar”中的文件,可能包含了一个或多个Java源文件,这些...

    JAVA-Aes.rar_AES_aes java_aes-256_java aes

    在Java编程环境中实现AES加密和解密功能,可以帮助开发者确保数据在传输过程中的安全性,防止未经授权的访问和篡改。本项目是基于Java编写的AES程序,适用于MyEclipse开发环境,由作者的同学编写。 AES算法的核心...

    对接java AES/ECB/PKCS7Padding加密

    这个过程完全符合Java的AES/ECB/PKCS7Padding加密方式,可以与Java代码无缝对接。 在实际应用中,为了提高安全性,建议使用更复杂的加密模式如CBC(Cipher Block Chaining)或CFB(Cipher Feedback),并且可以使用...

    Java实现的对称加密算法AES定义与用法详解

    "Java实现的对称加密算法AES定义与用法详解" 对称加密算法AES是当前使用最多的加密算法之一,其主要特点是高级的、安全的、快速的和灵活的。下面我们将详细介绍Java实现的对称加密算法AES的定义、特点、用法及使用...

    C#加密 解密对接java 的加密AES/CBC/PKCS7Padding 转16进制.rar

    AES的工作模式包括ECB、CBC、CFB、OFB和CTR等,其中**CBC(Cipher Block Chaining)**模式是一种常见的选择,它通过前一密文块与当前明文块异或后再加密,增强了安全性。 **PKCS7Padding**:PKCS7(Public-Key ...

    c/c++与java互通 AES加密解密

    "C/C++与Java互通AES加密解密"的主题就是这两个议题的结合。AES(Advanced Encryption Standard),即高级加密标准,是一种广泛使用的对称加密算法,提供了强效的数据保护。本话题主要探讨如何在C/C++和Java之间使用...

    java使用Hex编码解码实现Aes加密解密功能示例

    在Java编程中,AES(Advanced Encryption Standard)是一种广泛使用的对称加密算法,它提供了高度的安全性和效率。在本文示例中,我们关注的是如何利用Java的Hex编码和解码来处理AES加密和解密的过程。 首先,让...

    aes-256-gcm:静态类,可使用AES 256 GCM算法简化加密解密

    AES-256-GCM加密/解密快捷方式 静态类,可使用AES 256 GCM算法简化加密/解密。 只需使用单线即可加密或解密-IV和标签会自动处理。 例子 const Aes = require ( 'aes-256-gcm' ) ; // Must be 32 bytes. const ...

    AES|RSA加密

    AESTest.java文件则可能包含AES加密和解密的函数,可能支持ECB(电子密码本)、CBC(链式模式)、CFB(密文反馈模式)或OFB(输出反馈模式)等不同工作模式。 在实际应用中,为了提高安全性和灵活性,常常会结合...

    AES.rar_AES加密 java_aes code Java_java aes_java的AES_st77

    本资源是一个关于Java实现AES加密和解密的源代码示例,可以帮助开发者理解和应用AES加密技术。 AES的工作原理基于替换和置换两种操作,通过多轮迭代实现数据的加密。它使用相同的密钥进行加密和解密,有128、192和...

Global site tag (gtag.js) - Google Analytics