java 加密的示例

Python015

java 加密的示例,第1张

import java.security.*

import javax.crypto.*

import java.io.*

public class tCipher

{

public static void main(String[] args)

{

test_Cipher()

}

public static void test_Cipher()

{

try

{

//待加密的数据

String strToEnc = "Hello Java!"

byte[] plainText = strToEnc.getBytes()

System.out.println( "\n开始生成DES密钥" )

KeyGenerator keyGen = KeyGenerator.getInstance("DES")//初始化为DES算法

keyGen.init(56) //设置其密钥长度,56bits

Key key = keyGen.generateKey()//生成密钥

System.out.println( "生成DES密钥成功。" )

//打印出DES密钥

byte[] keyencode=key.getEncoded()

PrintHex(keyencode,keyencode.length)

//生成Cipher对象,设置算法为ECB模式的DES算法,补位填充模式为PKCS5

Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding")

//打印Cipher对象密码服务提供者信息

System.out.println( "\n" + cipher.getProvider().getInfo() )

// 加密

System.out.println( "\n开始加密" )

cipher.init(Cipher.ENCRYPT_MODE, key)//cipher对象初始化,设置为加密

byte[] cipherText = cipher.doFinal(plainText)//结束数据加密,输出密文

System.out.println( "加密完成,密文为: " )

PrintHex(cipherText,cipherText.length)//打印密文

// 使用相同的key解密数据

System.out.println( "\n开始解密" )

cipher.init(Cipher.DECRYPT_MODE, key)

byte[] newPlainText = cipher.doFinal(cipherText)

System.out.println( "解密完成 ,明文为:" )

//输出原文

System.out.println( new String(newPlainText, "UTF8") )

}

catch (Exception e)

{

System.out.println("加解密出错。")

}

}

public static void PrintHex(byte data[],int len)

{

int i

int tmp

String Tmp=""

for(i=0i<leni++)

{

if(i%16 == 0)

{

System.out.println("")

//0x0000

if(i<0x10)

Tmp = "0x000"

if((i<0x100) &&(i>=0x10))

Tmp = "0x00"

if((i>=0x100)&&(i<0x1000))

Tmp = "0x0"

if(i>=0x1000)

Tmp = "0x"

System.out.print(Tmp+Integer.toHexString(i)+"h: ")

}

tmp = data[i]

if(tmp <0)

tmp = 256 + tmp

if(tmp <0x10)

System.out.print("0"+Integer.toHexString(tmp) +" ")

else

System.out.print(Integer.toHexString(tmp) +" ")

}

System.out.println("")

}

}

这个一般没有统一的标准,教材有不同的版本一样。

我做过这个,记得很清楚

加密方式1:Conye加密方法

加密方式2:WeiffbYfds方法

就是这样了,不懂追问哈,嘻嘻。