**
* 加密解密类
*
*
*
*/
package ?com.abacus.common?;
import ?java.security.? * ;
import ?javax.crypto.? * ;
/**
*加密解密类
*/
public ? class ?Eryptogram?
{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
???? private ? static ?String?Algorithm? = " DES " ;
???? // 定义加密算法,可用DES,DESede,Blowfish
????? static ? boolean ?debug? = false ?;
???? /**
????*构造子注解.
???? */
???? public ?Eryptogram?()
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????}
???? /**
????*生成密钥
????*@returnbyte[]返回生成的密钥
????*@throwsexception扔出异常.
???? */
???? public ? static ? byte ?[]getSecretKey?() throws ?Exception?
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????KeyGenerator?keygen? = KeyGenerator.getInstance?(Algorithm?);
????????SecretKey?deskey? = keygen.generateKey?();
???????? if ?(debug?)System.out.println?( " 生成密钥: " + byte2hex?(deskey.getEncoded?()));
???????? return ?deskey.getEncoded?();
????}
???? /**
????*将指定的数据根据提供的密钥进行加密
????*@paraminput需要加密的数据
????*@paramkey密钥
????*@returnbyte[]加密后的数据
????*@throwsException
???? */
???? public ? static ? byte ?[]encryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????SecretKey?deskey? = new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
???????? if ?(debug?)
????????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????System.out.println?( " 加密前的二进串: " + byte2hex?(input?));
????????????System.out.println?( " 加密前的字符串: " + new ?String?(input?));
????????}
????????Cipher?c1? = Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.ENCRYPT_MODE?,deskey?);
???????? byte ?[]cipherByte? = c1.doFinal?(input?);
???????? if ?(debug?)System.out.println?( " 加密后的二进串: " + byte2hex?(cipherByte?));
???????? return ?cipherByte?;
????}
???? /**
????*将给定的已加密的数据通过指定的密钥进行解密
????*@paraminput待解密的数据
????*@paramkey密钥
????*@returnbyte[]解密后的数据
????*@throwsException
???? */
???? public ? static ? byte ?[]decryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????SecretKey?deskey? = new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
???????? if ?(debug?)System.out.println?( " 解密前的信息: " + byte2hex?(input?));
????????Cipher?c1? = Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.DECRYPT_MODE?,deskey?);
???????? byte ?[]clearByte? = c1.doFinal?(input?);
???????? if ?(debug?)
????????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????System.out.println?( " 解密后的二进串: " + byte2hex?(clearByte?));
????????????System.out.println?( " 解密后的字符串: " + ( new ?String?(clearByte?)));
????????}
???????? return ?clearByte?;
????}
???? /**
????*字节码转换成16进制字符串
????*@parambyte[]b输入要转换的字节码
????*@returnString返回转换后的16进制字符串
???? */
???? public ? static ?String?byte2hex?( byte ?[]b?)
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????String?hs? = "" ;
????????String?stmp? = "" ;
???????? for ?( int ?n? = 0 ?;n? < b.length?;n? ++ )
????????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????stmp? = (java.lang.Integer.toHexString?(b?[n?] & 0XFF ?));
???????????? if ?(stmp.length?() == 1 ?)hs? = hs? + " 0 " + stmp?;
???????????? else ?hs? = hs? + stmp?;
???????????? if ?(n? < b.length? - 1 ?)hs? = hs? + " : " ;
????????}
???????? return ?hs.toUpperCase?();
????}
???? public ? static ? void ?main?(String?[]args?)
????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
???????? try ?
????????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????debug? = false ?;
????????????Eryptogram?etg? = new ?Eryptogram?();
???????????? byte ?[]key? = etg.getSecretKey?();
????????????System.out.println?( " key= " + key?);
????????????String?aa? = " 1234567 " ;
???????????? byte ?[]data? = aa.getBytes?();
????????????System.out.println?(data?);
???????????? byte ?[]en? = etg.encryptData?(data?,key?);
????????????System.out.println?( " encryptData= " + new ?String?(en?));
???????????? byte ?[]de? = etg.decryptData?(en?,key?);
????????????System.out.println?( " decryptData= " + new ?String?(de?));
????????}
???????? catch ?(Exception?e?)
????????{![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????e.printStackTrace?();
????????}
????}
}
* 加密解密类
*
*
*
*/
package ?com.abacus.common?;
import ?java.security.? * ;
import ?javax.crypto.? * ;
/**
*加密解密类
*/
public ? class ?Eryptogram?
{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
???? private ? static ?String?Algorithm? = " DES " ;
???? // 定义加密算法,可用DES,DESede,Blowfish
????? static ? boolean ?debug? = false ?;
???? /**
????*构造子注解.
???? */
???? public ?Eryptogram?()
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????}
???? /**
????*生成密钥
????*@returnbyte[]返回生成的密钥
????*@throwsexception扔出异常.
???? */
???? public ? static ? byte ?[]getSecretKey?() throws ?Exception?
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????KeyGenerator?keygen? = KeyGenerator.getInstance?(Algorithm?);
????????SecretKey?deskey? = keygen.generateKey?();
???????? if ?(debug?)System.out.println?( " 生成密钥: " + byte2hex?(deskey.getEncoded?()));
???????? return ?deskey.getEncoded?();
????}
???? /**
????*将指定的数据根据提供的密钥进行加密
????*@paraminput需要加密的数据
????*@paramkey密钥
????*@returnbyte[]加密后的数据
????*@throwsException
???? */
???? public ? static ? byte ?[]encryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????SecretKey?deskey? = new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
???????? if ?(debug?)
????????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????System.out.println?( " 加密前的二进串: " + byte2hex?(input?));
????????????System.out.println?( " 加密前的字符串: " + new ?String?(input?));
????????}
????????Cipher?c1? = Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.ENCRYPT_MODE?,deskey?);
???????? byte ?[]cipherByte? = c1.doFinal?(input?);
???????? if ?(debug?)System.out.println?( " 加密后的二进串: " + byte2hex?(cipherByte?));
???????? return ?cipherByte?;
????}
???? /**
????*将给定的已加密的数据通过指定的密钥进行解密
????*@paraminput待解密的数据
????*@paramkey密钥
????*@returnbyte[]解密后的数据
????*@throwsException
???? */
???? public ? static ? byte ?[]decryptData?( byte ?[]input?, byte ?[]key?) throws ?Exception?
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????SecretKey?deskey? = new ?javax.crypto.spec.SecretKeySpec?(key?,Algorithm?);
???????? if ?(debug?)System.out.println?( " 解密前的信息: " + byte2hex?(input?));
????????Cipher?c1? = Cipher.getInstance?(Algorithm?);
????????c1.init?(Cipher.DECRYPT_MODE?,deskey?);
???????? byte ?[]clearByte? = c1.doFinal?(input?);
???????? if ?(debug?)
????????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????System.out.println?( " 解密后的二进串: " + byte2hex?(clearByte?));
????????????System.out.println?( " 解密后的字符串: " + ( new ?String?(clearByte?)));
????????}
???????? return ?clearByte?;
????}
???? /**
????*字节码转换成16进制字符串
????*@parambyte[]b输入要转换的字节码
????*@returnString返回转换后的16进制字符串
???? */
???? public ? static ?String?byte2hex?( byte ?[]b?)
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????String?hs? = "" ;
????????String?stmp? = "" ;
???????? for ?( int ?n? = 0 ?;n? < b.length?;n? ++ )
????????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????stmp? = (java.lang.Integer.toHexString?(b?[n?] & 0XFF ?));
???????????? if ?(stmp.length?() == 1 ?)hs? = hs? + " 0 " + stmp?;
???????????? else ?hs? = hs? + stmp?;
???????????? if ?(n? < b.length? - 1 ?)hs? = hs? + " : " ;
????????}
???????? return ?hs.toUpperCase?();
????}
???? public ? static ? void ?main?(String?[]args?)
????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
???????? try ?
????????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????debug? = false ?;
????????????Eryptogram?etg? = new ?Eryptogram?();
???????????? byte ?[]key? = etg.getSecretKey?();
????????????System.out.println?( " key= " + key?);
????????????String?aa? = " 1234567 " ;
???????????? byte ?[]data? = aa.getBytes?();
????????????System.out.println?(data?);
???????????? byte ?[]en? = etg.encryptData?(data?,key?);
????????????System.out.println?( " encryptData= " + new ?String?(en?));
???????????? byte ?[]de? = etg.decryptData?(en?,key?);
????????????System.out.println?( " decryptData= " + new ?String?(de?));
????????}
???????? catch ?(Exception?e?)
????????{
![](https://i-blog.csdnimg.cn/blog_migrate/9b8a8a44dd1c74ae49c20a7cd451974e.gif)
????????????e.printStackTrace?();
????????}
????}
}
![247018.html](https://i-blog.csdnimg.cn/blog_migrate/9f1f6260fe46b36cbd91d40cc48db40d.jpeg)