菜鸟求三重DES加密,解密代码

liqian008 2005-08-08 10:47:20
RT...

请各位大虾不吝赐教,小弟感激涕零...
...全文
257 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liqian008 2005-08-09
  • 打赏
  • 举报
回复
或者说有没有比较好的实现方式?
liqian008 2005-08-09
  • 打赏
  • 举报
回复
感谢rukhwill(志) ...
只是我现在想把加密后的信息保存至数据库表中,而不是输出至文件,不知道代码应该作何改动呢?
liqian008 2005-08-08
  • 打赏
  • 举报
回复
急...
rukhwill 2005-08-08
  • 打赏
  • 举报
回复
运行时别忘了带参数
rukhwill 2005-08-08
  • 打赏
  • 举报
回复
import java.io.*;
import java.security.*;
import javax.crypto.*;
import javax.crypto.spec.*;

/**
This program tests the DES cipher. Usage:
java DESTest -genkey keyfile
java DESTest -encrypt plaintext encrypted keyfile
java DESTest -decrypt encrypted decrypted keyfile
*/
public class DESTest
{
public static void main(String[] args)
{
try
{
if (args[0].equals("-genkey"))
{
KeyGenerator keygen
= KeyGenerator.getInstance("DES");
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("DES");
cipher.init(mode, key);

crypt(in, out, cipher);
in.close();
out.close();
}
}
catch (IOException exception)
{
exception.printStackTrace();
}
catch (GeneralSecurityException exception)
{
exception.printStackTrace();
}
catch (ClassNotFoundException exception)
{
exception.printStackTrace();
}
}

/**
Uses a cipher to transform the bytes in an input stream
and sends the transformed bytes to an output stream.
@param in the input stream
@param out the output stream
@param cipher the cipher that transforms the bytes
*/
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(inBytes);
if (inLength == blockSize)
{
int outLength
= cipher.update(inBytes, 0, blockSize, outBytes);
out.write(outBytes, 0, outLength);
System.out.println(outLength);
}
else more = false;
}
if (inLength > 0)
outBytes = cipher.doFinal(inBytes, 0, inLength);
else
outBytes = cipher.doFinal();
System.out.println(outBytes.length);
out.write(outBytes);
}
}
自己再改改吧

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧