加密方式
import java.security.InvalidKeyException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import javax.crypto.BadPaddingException;import javax.crypto.Cipher;import javax.crypto.IllegalBlockSizeException;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.SecretKeySpec;import sun.misc.BASE64Encoder;import com.kingdee.util.Base64Encoder;public class Jiami { private static final byte[] pwd = { -82, -101, 127, 52, -8, -108, 2, 93 }; public static void main(String[] args) { /** * administrator用户登录,默认密码为空,点修改密码后,写入123, * 在传到后台的时候会用encrypt1加密password,用decrypt对密文解密, * 之后用encrypt2对ID和pw原文组合的字符串进行加密 * administrator的FID=00000000-0000-0000-0000-00000000000013B7DE7F */ Jiami jiami = new Jiami(); String number = "gaofei04"; String pw = "1234abcd"; String houtai = jiami.encrypt1(number, pw); System.out.println("后台="+houtai); String houtaijiemi = jiami.decrypt(number,houtai); System.out.println("后台解密="+houtaijiemi); String fid ="00000000-0000-0000-0000-00000000000013B7DE7F"; String zuizhongjiamimingwen = fid+houtaijiemi; String zuizhongmiwen = jiami.encrypt2(zuizhongjiamimingwen); System.out.println("最终密文="+zuizhongmiwen); } public String encrypt1(String paramString1, String paramString2) { SecretKeySpec localSecretKeySpec = new SecretKeySpec(pwd, "DES"); Cipher localCipher; try { localCipher = Cipher.getInstance("DES"); localCipher.init(1, localSecretKeySpec); byte[] arrayOfByte = localCipher.doFinal(paramString2.getBytes()); String str = Base64Encoder.byteArrayToBase64(arrayOfByte); return str; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; } /**strSrc=用户FID+pw明文 * @date 2012-5-22下午09:31:49 * @author fans * @param strSrc * @return */ public String encrypt2(String strSrc) { String strEncode = null; byte[] btKey = new byte[strSrc.getBytes().length + 1]; System.arraycopy(strSrc.getBytes(), 0, btKey, 0, strSrc.getBytes().length); try { MessageDigest md = MessageDigest.getInstance("MD5"); md.update(btKey); byte[] btDigest = md.digest(); BASE64Encoder encoder = new BASE64Encoder(); strEncode = encoder.encode(btDigest); } catch (Exception e) { e.printStackTrace(); } return strEncode; } public String decrypt(String paramString1, String paramString2) { SecretKeySpec localSecretKeySpec = new SecretKeySpec(pwd, "DES"); try { Cipher localCipher = Cipher.getInstance("DES"); localCipher.init(2, localSecretKeySpec); byte[] arrayOfByte = Base64Encoder.base64ToByteArray(paramString2); String str = new String(localCipher.doFinal(arrayOfByte)); return str; } catch (NoSuchAlgorithmException localNoSuchAlgorithmException) { localNoSuchAlgorithmException.printStackTrace(); } catch (NoSuchPaddingException localNoSuchPaddingException) { localNoSuchPaddingException.printStackTrace(); } catch (InvalidKeyException localInvalidKeyException) { localInvalidKeyException.printStackTrace(); } catch (IllegalStateException localIllegalStateException) { localIllegalStateException.printStackTrace(); } catch (IllegalBlockSizeException localIllegalBlockSizeException) { localIllegalBlockSizeException.printStackTrace(); } catch (BadPaddingException localBadPaddingException) { localBadPaddingException.printStackTrace(); } return null; }}
?