已经写出java的加密方法,希望能帮我用perl写出和下面Java代码同样的实现,先谢谢了package testPassword;import java.security.InvalidKeyException;
import java.security.Key;
import java.security.NoSuchAlgorithmException;
import java.security.Security;import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;import com.sun.crypto.provider.SunJCE;public class PasswordManager {
private Cipher encrypt_ = null; private Cipher decrypt_ = null; private static PasswordManager passwordManager = null; public static synchronized PasswordManager getInstance() {
if (PasswordManager.passwordManager == null)
passwordManager = new PasswordManager();
return passwordManager;
} private PasswordManager() {
Security.addProvider(new SunJCE());

Key key = getKey("myfirsttest".getBytes());
try {
this.encrypt_ = Cipher.getInstance("DES");
this.encrypt_.init(Cipher.ENCRYPT_MODE, key);
this.decrypt_ = Cipher.getInstance("DES");
this.decrypt_.init(Cipher.DECRYPT_MODE, key);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
return;
} catch (NoSuchPaddingException e) {
e.printStackTrace();
return;
} catch (InvalidKeyException e) {
e.printStackTrace();
return;
} }
public String encrypt(String aValue) throws IllegalBlockSizeException,
BadPaddingException {
return byteArr2HexStr(encrypt(aValue.getBytes()));
} private byte[] encrypt(byte[] aByte) throws IllegalBlockSizeException,
BadPaddingException {
return this.encrypt_.doFinal(aByte);
}
private Key getKey(byte[] aByte) {
byte[] arrB = new byte[8];
for (int i = 0; i < aByte.length && i < arrB.length; i++) {
arrB[i] = aByte[i];
}
Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");
return key;
} private String byteArr2HexStr(byte[] aByte) {
int iLen = aByte.length;
StringBuffer sb = new StringBuffer(iLen * 2);
for (int i = 0; i < iLen; i++) {
int intTmp = aByte[i];
while (intTmp < 0) {
intTmp = intTmp + 256;
}
if (intTmp < 16) {
sb.append("0");
}
sb.append(Integer.toString(intTmp, 16));
}
return sb.toString();
}}