`

java aes加密

    博客分类:
  • java
阅读更多
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.security.GeneralSecurityException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;

public class AESTest {

public static void main(String args[])
{
try
{
if(args[0].equals("-genkey"))
{
KeyGenerator keygen=KeyGenerator.getInstance("AES");
SecureRandom random=new SecureRandom();
keygen.init(random);
SecretKey key=keygen.generateKey();
ObjectOutputStream out=new ObjectOutputStream(new FileOutputStream(args[1]));
out.writeObject(key);
out.close();
}else
{
int mode;
if(args[0].equals("-encrypt"))
mode=Cipher.ENCRYPT_MODE;
else
mode=Cipher.DECRYPT_MODE;

ObjectInputStream keyIn=new ObjectInputStream(new FileInputStream(args[3]));
Key key=(Key) keyIn.readObject();
keyIn.close();

InputStream in=new FileInputStream(args[1]);
OutputStream out=new FileOutputStream(args[2]);
Cipher cipher=Cipher.getInstance("AES");
cipher.init(mode, key);
crypt(in,out,cipher);
in.close();
out.close();

}

}catch(IOException e)
{
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (GeneralSecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public static void crypt(InputStream in,OutputStream out,Cipher cipher)throws IOException,GeneralSecurityException
{
int blockSize=cipher.getBlockSize();
int outputSize=cipher.getOutputSize(blockSize);
byte[] inBytes=new byte[blockSize];
byte[] outBytes=new byte[outputSize];

int inLength=0;
boolean more=true;
while(more)
{
inLength=in.read();
if(inLength==blockSize)
{
int outLength=cipher.update(inBytes,0,blockSize,outBytes);
out.write(outBytes,0,outLength);
}else
{
more=false;
}
if(inLength>0)
{
outBytes=cipher.doFinal(inBytes,0,inLength);
}else
{
outBytes=cipher.doFinal();
}
out.write(outBytes);
}
}
}


软件开发者证书
1)javac *.java
生成密钥
2)java AESTest -genkey secret.key
加密
3)java AESTest -encrypt plaintextFile encryptedFile secret.key
解密
4)java AESTest -decrypt encryptedFile decryptedFile secret.key
分享到:
评论

相关推荐

    java aes加密转换Base64 使用 CBC 解密模式

    java AES加密解密,使用 CBC 解密模式,EncryptByAes Aes加密 后 base64 再加 DecryptByAes Aes 解密,对 PKCS7 填充的数据进行反填充,对数据进行 PKCS7 填充 使用 CBC 解密模式, // aesDecrypt 解密 public ...

    java AES加密 解决加密过长非法异常问题

    在提供的两个文件`AES加密1.java`和`AES加密2.java`中,可能包含了上述两种方式的实现。它们可能涵盖了密钥生成、初始化向量(IV)的使用、不同加密模式的选择以及如何处理加密过程中可能遇到的异常。通过阅读和理解...

    Java AES加密Java AES加密Java AES加密Java AES加密

    Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密Java AES加密

    AES加密.rar java Aes加密方式

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

    AES加密算法(java实现).zip_aes java_cmM0 解密_java aes加密 demo_js aes加密算法_

    `java_aes加密_demo`表示这是一个Java AES加密的示例项目,而`js_aes加密算法`表明还有JavaScript版本的AES加密实现。 这个压缩包文件可能包含了Java实现AES加密和解密的代码示例,适合初学者了解和学习AES加密的...

    JAVA AES 加密算法

    JAVA AES 加密算法 javax.crypto.Cipher AES/ECB/PKCS5Padding

    java AES 加密解密源码,集成了AWT 界面,源码直接打包成jar,可以运行

    本项目提供了一个集成了AWT界面的Java AES加密解密工具,方便开发者直接使用或集成到自己的项目中。 首先,我们要理解AES加密的基本原理。AES是一种块密码,它将明文分为128位的数据块进行处理,支持128、192、256...

    Java实现AES加密和解密算法

    在Java中实现AES(Advanced Encryption Standard)...总之,Java中的AES加密和解密涉及到密钥生成、密码器的使用以及数据的转换。在实现过程中,还需要考虑安全性、性能和兼容性等问题,确保加密算法的有效性和安全性。

    java实现aes加密

    java实现aes加解密

    JAVA实现AES加密和解密

    在提供的压缩包文件"java aes加密、解密"中,应该包含了一个完整的Java项目,包含了上述所有步骤的代码示例,并且每个方法都有详细的注释,可以直接运行查看效果。这个项目无需任何额外的插件,只需要Java环境即可...

    JavaAES加密库.zip

    在"JavaAES加密库.zip"中,我们可能找到一个名为"alice-master"的项目,这可能是一个开源项目或代码示例,用于展示如何在Java中使用AES加密。"alice-master"通常表示这是一个Git仓库的主分支或者项目的主目录。 要...

    JAVA AES加密解密

    * 编码工具类 * 1.将byte[]转为各种进制的字符串 * 2.base 64 encode * 3.base 64 decode * 4.... * 5.... * 6.... * 7.AES加密 * 8.AES加密为base 64 code * 9.AES解密 * 10.将base 64 code AES解密

    AES加密算法(java)实现

    AES高级加密标准,在密码学中又称Rijndael加密法,是美国联邦政府采用的一种...本软件是用java语言开发,实现了AES算法对文件的加密和解密,并在界面上加了进度条,来提示用户加密解密的进度。如果不足之处,欢迎留言。

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

    在本文示例中,我们关注的是如何利用Java的Hex编码和解码来处理AES加密和解密的过程。 首先,让我们了解什么是Hex编码。Hex编码是一种将二进制数据转换为可打印字符的表示方式,每个字节被转换为两个十六进制数字...

    AES.rar_AES_AES加密 java_AES算法_aes java_java aes

    AES加密过程** - **字节代换**:这是非线性的一步,每个字节通过一个固定的查找表进行替换,使得明文数据的初始模式发生改变。 - **行移位**:将128位的矩阵按行进行循环左移,不同轮的移动位数不同,增加了混淆...

    Java AES DES加密算法的坑

    在IT行业中,加密算法是数据安全的重要组成部分,Java平台提供了多种加密算法,如AES和DES。本文将深入探讨这两种加密算法在实际应用中可能遇到的问题和陷阱。 首先,AES(Advanced Encryption Standard)是一种块...

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

    在Java中,我们可以使用`javax.crypto`包来实现AES加密和解密。以下是实现这个功能的主要步骤: 1. **密钥生成**:首先,我们需要创建一个AES密钥。可以使用`KeyGenerator`类生成一个随机密钥。例如,对于128位的...

    Java AES加密解密

    在Java中实现AES加密解密,我们需要使用Java Cryptography Extension (JCE)库。以下是一些关键知识点: 1. 导入相关库: ```java import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; import...

    AES JS加密JAVA解密

    在这个场景中,"AES JS加密JAVA解密" 提到的是使用JavaScript进行AES加密,然后在Java环境中对加密后的数据进行解密的过程。下面我们将深入探讨这个主题。 首先,AES加密的基本原理是通过一个密钥和一系列复杂的...

Global site tag (gtag.js) - Google Analytics