📄 java上加密算法的实现用例.mht
字号:
b)=20
<BR><BR>{ <BR><BR>String hs=3D""; =
<BR><BR>String=20
stmp=3D""; <BR><BR>for (int n=3D0;n {=20
=
<BR><BR>stmp=3D(java.lang.Integer.toHexString(b[n]=20
& 0XFF)); <BR><BR>if =
(stmp.length()=3D=3D1)=20
hs=3Dhs+"0"+stmp; <BR><BR>else =
hs=3Dhs+stmp;=20
<BR><BR>if (n } <BR><BR>return =
hs.toUpperCase();=20
<BR><BR>} <BR><BR><BR>} =
<BR><BR><BR><BR><BR>2.4.=20
DESede/DES=B6=D4=B3=C6=CB=E3=B7=A8=20
=
<BR><BR>=CA=D7=CF=C8=C9=FA=B3=C9=C3=DC=D4=BF,=B2=A2=B1=A3=B4=E6(=D5=E2=C0=
=EF=B2=A2=C3=BB=B5=C4=B1=A3=B4=E6=B5=C4=B4=FA=C2=EB,=BF=C9=B2=CE=BF=BCDSA=
=D6=D0=B5=C4=B7=BD=B7=A8)=20
<BR><BR><BR>KeyGenerator keygen =3D=20
KeyGenerator.getInstance(Algorithm);=20
<BR><BR><BR>SecretKey deskey =3D=20
keygen.generateKey();=20
=
<BR><BR><BR>=D3=C3=C3=DC=D4=BF=BC=D3=C3=DC=C3=F7=CE=C4(myinfo),=C9=FA=B3=C9=
=C3=DC=CE=C4(cipherByte)=20
<BR><BR><BR>Cipher c1 =3D=20
Cipher.getInstance(Algorithm);=20
=
<BR><BR><BR>c1.init(Cipher.ENCRYPT_MODE,deskey);=20
<BR><BR><BR>byte[]=20
=
cipherByte=3Dc1.doFinal(myinfo.getBytes());=20
=
<BR><BR><BR>=B4=AB=CB=CD=C3=DC=CE=C4=BA=CD=C3=DC=D4=BF,=B1=BE=CE=C4=C3=BB=
=D3=D0=CF=E0=D3=A6=B4=FA=C2=EB=BF=C9=B2=CE=BF=BCDSA=20
<BR><BR><BR>............. =
<BR><BR><BR>=D3=C3=C3=DC=D4=BF=BD=E2=C3=DC=C3=DC=CE=C4=20
<BR><BR><BR>c1 =3D =
Cipher.getInstance(Algorithm);=20
=
<BR><BR><BR>c1.init(Cipher.DECRYPT_MODE,deskey);=20
<BR><BR><BR>byte[]=20
clearByte=3Dc1.doFinal(cipherByte);=20
=
<BR><BR><BR>=CF=E0=B6=D4=C0=B4=CB=B5=B6=D4=B3=C6=C3=DC=D4=BF=B5=C4=CA=B9=D3=
=C3=CA=C7=BA=DC=BC=F2=B5=A5=B5=C4,=B6=D4=D3=DAJCE=C0=B4=BD=B2=D6=A7=BC=BC=
DES,DESede,Blowfish=C8=FD=D6=D6=BC=D3=C3=DC=CA=F5=20
=
<BR><BR><BR>=B6=D4=D3=DA=C3=DC=D4=BF=B5=C4=B1=A3=B4=E6=B8=F7=B4=AB=CB=CD=BF=
=C9=CA=B9=D3=C3=B6=D4=CF=F3=C1=F7=BB=F2=D5=DF=D3=C3=B6=FE=BD=F8=D6=C6=B1=E0=
=C2=EB,=CF=E0=B9=D8=B2=CE=BF=BC=B4=FA=C2=EB=C8=E7=CF=C2=20
<BR><BR>SecretKey deskey =3D =
keygen.generateKey();=20
<BR><BR>byte[] =
desEncode=3Ddeskey.getEncoded();=20
<BR><BR>javax.crypto.spec.SecretKeySpec =
destmp=3Dnew=20
=
javax.crypto.spec.SecretKeySpec(desEncode,Algorithm);=20
<BR><BR>SecretKey mydeskey=3Ddestmp;=20
<BR><BR><BR><BR><BR>=CF=E0=B9=D8API =
<BR><BR><BR>KeyGenerator=20
=
=D4=DADSA=D6=D0=D2=D1=BE=AD=CB=B5=C3=F7,=D4=DA=CC=ED=BC=D3JCE=BA=F3=D4=DA=
instance=BD=F8=BF=C9=D2=D4=C8=E7=CF=C2=B2=CE=CA=FD=20
=
<BR><BR><BR>DES,DESede,Blowfish,HmacMD5,HmacSHA1=20
<BR><BR><BR>javax.crypto.Cipher =
=BC=D3/=BD=E2=C3=DC=C6=F7 public=20
static final Cipher =
getInstance(java.lang.String=20
transFORMation) <BR><BR>throws=20
java.security.NoSuchAlgorithmException,=20
<BR><BR>NoSuchPaddingException=20
=
<BR><BR><BR><BR><BR>=B7=B5=BB=D8=D2=BB=B8=F6=D6=B8=B6=A8=B7=BD=B7=A8=B5=C4=
Cipher=B6=D4=CF=F3=20
<BR><BR><BR>=B2=CE=CA=FD:transFORMation =
=B7=BD=B7=A8=C3=FB(=BF=C9=D3=C3=20
DES,DESede,Blowfish) <BR><BR><BR>public =
final void=20
init(int opmode, java.security.Key key)=20
<BR><BR>throws =
java.security.InvalidKeyException=20
=
<BR><BR><BR>=D3=C3=D6=B8=B6=A8=B5=C4=C3=DC=D4=BF=BA=CD=C4=A3=CA=BD=B3=F5=CA=
=BC=BB=AFCipher=B6=D4=CF=F3=20
<BR><BR><BR>=B2=CE=CA=FD:opmode =
=B7=BD=CA=BD(ENCRYPT_MODE,=20
DECRYPT_MODE, WRAP_MODE,UNWRAP_MODE)=20
<BR><BR><BR>key =C3=DC=D4=BF =
<BR><BR><BR><BR>public final=20
byte[] doFinal(byte[] input) =
<BR><BR>throws=20
java.lang.IllegalStateException,=20
<BR><BR>IllegalBlockSizeException,=20
<BR><BR>BadPaddingException=20
=
<BR><BR><BR><BR><BR><BR>=B6=D4input=C4=DA=B5=C4=B4=AE,=BD=F8=D0=D0=B1=E0=C2=
=EB=B4=A6=C0=ED,=B7=B5=BB=D8=B4=A6=C0=ED=BA=F3=B6=FE=BD=F8=D6=C6=B4=AE,=CA=
=C7=B7=B5=BB=D8=BD=E2=C3=DC=CE=C4=BB=B9=CA=C7=BC=D3=BD=E2=CE=C4=D3=C9init=
=CA=B1=B5=C4opmode=BE=F6=B6=A8=20
=
<BR><BR><BR>=D7=A2=D2=E2:=B1=BE=B7=BD=B7=A8=B5=C4=D6=B4=D0=D0=C7=B0=C8=E7=
=B9=FB=D3=D0update,=CA=C7=B6=D4updat=BA=CD=B1=BE=B4=CEinput=C8=AB=B2=BF=B4=
=A6=C0=ED,=B7=F1=D4=F2=CA=C7=B1=BEinout=B5=C4=C4=DA=C8=DD=20
<BR><BR><BR>/* =
<BR><BR>=B0=B2=C8=AB=B3=CC=D0=F2 DESede/DES=B2=E2=CA=D4=20
<BR><BR>*/ <BR><BR>import java.security.*; =
<BR><BR>import javax.crypto.*; =
<BR><BR>public=20
class testdes { <BR><BR>public static void =
main(String[] args){ <BR><BR>testdes =
my=3Dnew=20
testdes(); <BR><BR>my.run(); <BR><BR>}=20
<BR><BR>public void run() {=20
=
<BR><BR>//=CC=ED=BC=D3=D0=C2=B0=B2=C8=AB=CB=E3=B7=A8,=C8=E7=B9=FB=D3=C3JC=
E=BE=CD=D2=AA=B0=D1=CB=FC=CC=ED=BC=D3=BD=F8=C8=A5=20
<BR><BR>Security.addProvider(new=20
com.sun.crypto.provider.SunJCE()); =
<BR><BR>String=20
Algorithm=3D"DES"; //=B6=A8=D2=E5 =
=BC=D3=C3=DC=CB=E3=B7=A8,=BF=C9=D3=C3 DES,DESede,Blowfish=20
<BR><BR>String =
myinfo=3D"=D2=AA=BC=D3=C3=DC=B5=C4=D0=C5=CF=A2"; <BR><BR>try {=20
<BR><BR>//=C9=FA=B3=C9=C3=DC=D4=BF =
<BR><BR>KeyGenerator keygen =3D=20
KeyGenerator.getInstance(Algorithm);=20
<BR><BR>SecretKey deskey =3D =
keygen.generateKey();=20
<BR><BR><BR>//=BC=D3=C3=DC=20
=
<BR><BR>System.out.println("=BC=D3=C3=DC=C7=B0=B5=C4=B6=FE=BD=F8=B4=AE:"+=
byte2hex(myinfo.getBytes()));=20
=
<BR><BR>System.out.println("=BC=D3=C3=DC=C7=B0=B5=C4=D0=C5=CF=A2:"+myinfo=
);=20
<BR><BR>Cipher c1 =3D =
Cipher.getInstance(Algorithm);=20
=
<BR><BR>c1.init(Cipher.ENCRYPT_MODE,deskey);=20
<BR><BR>byte[]=20
=
cipherByte=3Dc1.doFinal(myinfo.getBytes());=20
=
<BR><BR>System.out.println("=BC=D3=C3=DC=BA=F3=B5=C4=B6=FE=BD=F8=B4=AE:"+=
byte2hex(cipherByte));=20
<BR><BR>//=BD=E2=C3=DC <BR><BR>c1 =3D=20
Cipher.getInstance(Algorithm);=20
=
<BR><BR>c1.init(Cipher.DECRYPT_MODE,deskey);=20
<BR><BR>byte[] =
clearByte=3Dc1.doFinal(cipherByte);=20
=
<BR><BR>System.out.println("=BD=E2=C3=DC=BA=F3=B5=C4=B6=FE=BD=F8=B4=AE:"+=
byte2hex(clearByte));=20
=
<BR><BR>System.out.println("=BD=E2=C3=DC=BA=F3=B5=C4=D0=C5=CF=A2:"+(new=20
String(clearByte))); <BR><BR><BR>} =
<BR><BR>catch=20
(java.security.NoSuchAlgorithmException =
e1)=20
{e1.printStackTrace();} <BR><BR>catch=20
(javax.crypto.NoSuchPaddingException e2)=20
{e2.printStackTrace();} <BR><BR>catch=20
(java.lang.Exception e3) =
{e3.printStackTrace();}=20
<BR><BR>} <BR><BR>public String =
byte2hex(byte[] b)=20
=
//=B6=FE=D0=D0=D6=C6=D7=AA=D7=D6=B7=FB=B4=AE <BR><BR>{ <BR><BR>String =
hs=3D"";=20
<BR><BR>String stmp=3D""; <BR><BR>for (int =
n=3D0;n {=20
=
<BR><BR>stmp=3D(java.lang.Integer.toHexString(b[n]=20
& 0XFF)); <BR><BR>if =
(stmp.length()=3D=3D1)=20
hs=3Dhs+"0"+stmp; <BR><BR>else =
hs=3Dhs+stmp;=20
<BR><BR>if (n } <BR><BR>return =
hs.toUpperCase();=20
<BR><BR>} <BR><BR><BR>} =
<BR><BR><BR><BR><BR>2.5.=20
=
Diffie-Hellman=C3=DC=D4=BF=D2=BB=D6=C2=D0=AD=D2=E9=20
=
<BR><BR>=B9=AB=BF=AA=C3=DC=D4=BF=C3=DC=C2=EB=CC=E5=D6=C6=B5=C4=B5=EC=BB=F9=
=C8=CBDiffie=BA=CDHellman=CB=F9=CC=E1=B3=F6=B5=C4=20
=
"=D6=B8=CA=FD=C3=DC=D4=BF=D2=BB=D6=C2=D0=AD=D2=E9"(Exponential Key =
Agreement=20
=
Protocol),=B8=C3=D0=AD=D2=E9=B2=BB=D2=AA=C7=F3=B1=F0=B5=C4=B0=B2=C8=AB=D0=
=D4=20
=
=CF=C8=BE=F6=CC=F5=BC=FE,=D4=CA=D0=ED=C1=BD=C3=FB=D3=C3=BB=A7=D4=DA=B9=AB=
=BF=AA=C3=BD=CC=E5=C9=CF=BD=BB=BB=BB=D0=C5=CF=A2=D2=D4=C9=FA=B3=C9"=D2=BB=
=D6=C2"=B5=C4,=BF=C9=D2=D4=B9=B2=CF=ED=B5=C4=C3=DC=D4=BF=A1=A3=D4=DAJCE=B5=
=C4=D6=D0=CA=B5=CF=D6=D3=C3=BB=A7alice=C9=FA=B3=C9DH=C0=E0=D0=CD=B5=C4=C3=
=DC=D4=BF=B6=D4,=C8=E7=B9=FB=B3=A4=B6=C8=D3=C31024=C9=FA=B3=C9=B5=C4=CA=B1=
=BC=E4=C7=EB,=CD=C6=BC=F6=B5=DA=D2=BB=B4=CE=C9=FA=B3=C9=BA=F3=B1=A3=B4=E6=
DHParameterSpec,=D2=D4=B1=E3=CF=C2=B4=CE=CA=B9=D3=C3=D6=B1=BD=D3=B3=F5=CA=
=BC=BB=AF.=CA=B9=C6=E4=CB=D9=B6=C8=BC=D3=BF=EC=20
<BR><BR><BR>System.out.println("ALICE: =
=B2=FA=C9=FA DH =B6=D4=20
..."); <BR><BR>KeyPairGenerator =
aliceKpairGen =3D=20
KeyPairGenerator.getInstance("DH");=20
<BR><BR>aliceKpairGen.initialize(512);=20
<BR><BR>KeyPair aliceKpair =3D=20
aliceKpairGen.generateKeyPair();=20
=
<BR><BR><BR><BR><BR>alice=C9=FA=B3=C9=B9=AB=D4=BF=B7=A2=CB=CD=D7=E9bob =
byte[]=20
alicePubKeyEnc =3D=20
aliceKpair.getPublic().getEncoded();=20
=
<BR><BR><BR><BR><BR>bob=B4=D3alice=B7=A2=CB=CD=C0=B4=B5=C4=B9=AB=D4=BF=D6=
=D0=B6=C1=B3=F6DH=C3=DC=D4=BF=B6=D4=B5=C4=B3=F5=CA=BC=B2=CE=CA=FD=C9=FA=B3=
=C9bob=B5=C4DH=C3=DC=D4=BF=B6=D4=20
=
<BR><BR><BR>=D7=A2=D2=E2=D5=E2=D2=BB=B2=BD=D2=BB=B6=A8=D2=AA=D7=F6,=D2=AA=
=B1=A3=D6=A4=C3=BF=B8=F6=D3=C3=BB=A7=D3=C3=CF=E0=CD=AC=B5=C4=B3=F5=CA=BC=B2=
=CE=CA=FD=C9=FA=B3=C9=B5=C4=20
<BR><BR>DHParameterSpec dhParamSpec =3D=20
((DHPublicKey)alicePubKey).getParams();=20
<BR><BR>KeyPairGenerator bobKpairGen =3D=20
KeyPairGenerator.getInstance("DH");=20
=
<BR><BR>bobKpairGen.initialize(dhParamSpec);=20
<BR><BR>KeyPair bobKpair =3D=20
bobKpairGen.generateKeyPair();=20
=
<BR><BR><BR><BR><BR>bob=B8=F9=BE=DDalice=B5=C4=B9=AB=D4=BF=C9=FA=B3=C9=B1=
=BE=B5=D8=B5=C4DES=C3=DC=D4=BF=20
<BR><BR>KeyAgreement bobKeyAgree =3D=20
KeyAgreement.getInstance("DH");=20
=
<BR><BR>bobKeyAgree.init(bobKpair.getPrivate());=20
<BR><BR>bobKeyAgree.doPhase(alicePubKey, =
true);=20
<BR><BR>SecretKey bobDesKey =3D=20
bobKeyAgree.generateSecret("DES");=20
=
<BR><BR><BR><BR><BR>bob=D2=D1=BE=AD=C9=FA=B3=C9=C1=CB=CB=FB=B5=C4DES=C3=DC=
=D4=BF,=CB=FB=CF=D6=B0=D1=CB=FB=B5=C4=B9=AB=D4=BF=B7=A2=B8=F8alice,=20
<BR><BR>byte[] bobPubKeyEnc =3D=20
bobKpair.getPublic().getEncoded();=20
=
<BR><BR><BR><BR><BR>alice=B8=F9=BE=DDbob=B5=C4=B9=AB=D4=BF=C9=FA=B3=C9=B1=
=BE=B5=D8=B5=C4DES=C3=DC=D4=BF=20
<BR><BR>,,,,,,=BD=E2=C2=EB =
<BR><BR>KeyAgreement=20
aliceKeyAgree =3D =
KeyAgreem
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -