난 둘 경우 암호를 해독하기 전에 암호화하고 내가 암호화 &에 대한 배치 어떤 키와 일치하는 것을 시도하고문자열은
public class Encryption {
private static String charsetName = "UTF8";
private static String algorithm = "DES";
private static int base64Mode = Base64.DEFAULT;
public String getCharsetName() {
return charsetName;
}
public void setCharsetName(String charsetName) {
this.charsetName = charsetName;
}
public String getAlgorithm() {
return algorithm;
}
public void setAlgorithm(String algorithm) {
this.algorithm = algorithm;
}
public int getBase64Mode() {
return base64Mode;
}
public void setBase64Mode(int base64Mode) {
this.base64Mode = base64Mode;
}
public static String encrypt(String key, String data) {
if (key == null || data == null)
return null;
try {
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(charsetName));
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(algorithm);
SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);
byte[] dataBytes = data.getBytes(charsetName);
Cipher cipher = Cipher.getInstance(algorithm);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return Base64.encodeToString(cipher.doFinal(dataBytes), base64Mode);
} catch (Exception e) {
return null;
}
}
public static String decrypt(String key, String data) {
if (key == null || data == null)
return null;
try {
byte[] dataBytes = Base64.decode(data, base64Mode);
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes(charsetName));
SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance(algorithm);
SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);
Cipher cipher = Cipher.getInstance(algorithm);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] dataBytesDecrypted = (cipher.doFinal(dataBytes));
return new String(dataBytesDecrypted);
} catch (Exception e) {
return null;
}
}
}
이 코드를 사용하여 텍스트를 해독하고있어 키는 내가이 내가 할 노력하고있어 어떻게
string a="sfdsfsjbgdfkbgdfkjbgk";//encrypted text just for assuming
decrypted=Encryption.decrypt(key, a.trim());
encrypted=Encryption.encrypt(key, decrypted.trim());
if(a.contentEquals(encrypted.trim())){
//show the decrypted text
}
else
{
//Show the wrong key
}
할 노력하고있어 텍스트, 그렇지 않으면 나를 여기 wrongkey 프롬프트입니다 해독 일치하지만 내가 넣을 때 올바른 키 else 문은 실행하고 응용 프로그램에 대한 중지 if 문 누구든지 내가 여기서 잘못하고있는 것을 지적 할 수 있습니다.
동일한 키를 암호화하고 암호 해독하려고했는데 값이 동일하게 반환 되었습니까? – Aiapaec
예 else 문에 표시하려고하면 동일한 값을 반환합니다. –
@El_Mochiq 어떤 아이디어가 있습니까? –