You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.9 KiB
53 lines
1.9 KiB
package com.fr.plugin.tools; |
|
|
|
|
|
|
|
|
|
import javax.crypto.*; |
|
import javax.crypto.spec.DESKeySpec; |
|
|
|
import sun.misc.BASE64Encoder; |
|
|
|
import java.io.IOException; |
|
import java.security.InvalidKeyException; |
|
import java.security.NoSuchAlgorithmException; |
|
import java.security.SecureRandom; |
|
import java.security.spec.InvalidKeySpecException; |
|
|
|
public class EncryptTool |
|
{ |
|
private byte[] encryptString(byte[] data, byte[] rawKeyData) |
|
throws InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, BadPaddingException, IllegalBlockSizeException, IllegalStateException |
|
{ |
|
SecureRandom sr = new SecureRandom(); |
|
DESKeySpec dks = new DESKeySpec(rawKeyData); |
|
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); |
|
SecretKey key = keyFactory.generateSecret(dks); |
|
Cipher cipher = Cipher.getInstance("DES"); |
|
cipher.init(1, key, sr); |
|
byte[] encryptedData = cipher.doFinal(data); |
|
return encryptedData; |
|
} |
|
|
|
public String encryptString(String rawStr, String rawKey) |
|
throws InvalidKeyException, NoSuchAlgorithmException, InvalidKeySpecException, NoSuchPaddingException, BadPaddingException, IllegalBlockSizeException, IllegalStateException, IOException |
|
{ |
|
byte[] rawStrData = rawStr.getBytes(); |
|
byte[] rawKeyData = rawKey.getBytes(); |
|
byte[] encryptData = encryptString(rawStrData, rawKeyData); |
|
String encryptStr = new BASE64Encoder().encode(encryptData); |
|
byte[] c = encryptStr.getBytes(); |
|
StringBuffer strBuf = new StringBuffer(); |
|
for (int i = 0; i < c.length; ++i) |
|
{ |
|
int t = c[i]; |
|
String str = Integer.toHexString(t); |
|
if (str.length() == 1) |
|
strBuf.append(0); |
|
strBuf.append(Integer.toHexString(t)); |
|
} |
|
return strBuf.toString(); |
|
} |
|
} |
|
|
|
|
|
|