AndroidでTriple DESを使用した暗号化はどのように行われますか?事前定義されたクラスはありますか?androidの暗号化
2
A
答えて
1
これはうまく動作しない場合があります。 は、あらゆる種類のデータを暗号化するために使用することができますより多くの暗号化アルゴリズムがありますが楽しい、JAL
public BoolString tryEncrypt(String inString, String key){
boolean success= true;
String err="";
String outString="Encrypted"; // BoolString.value
try {
byte[] byteKey= key.getBytes("UTF8");
if (byteKey.length != 24) {
success= false;
err= "Key is "+byteKey.length+" bytes. Key must be exactly 24 bytes in length.";
throw new Exception(err); // could also return here
}
KeySpec ks= new DESedeKeySpec(byteKey);
SecretKeyFactory skf= SecretKeyFactory.getInstance("DESede");
SecretKey sk= skf.generateSecret(ks);
Cipher cph=Cipher.getInstance("DESede");
cph.init(Cipher.ENCRYPT_MODE, sk);
byte[] byteInString= inString.getBytes("UTF8");
byte[] byteEncoded= cph.doFinal(byteInString);
outString= Base64.encodeToString(byteEncoded, Base64.DEFAULT);
}
catch (UnsupportedEncodingException e){err="Unable to convert key to byte array."; success= false;}
catch (InvalidKeyException e){err="Unable to generate KeySpec from key";success= false;}
catch (NoSuchAlgorithmException e){err="Unable to find algorithm.";success= false;}
catch (InvalidKeySpecException e){err="Invalid Key Specification";success= false;}
catch (NoSuchPaddingException e){err="No such padding";success= false;}
catch (IllegalArgumentException e){err="Illegal argument";success= false;}
catch (Exception e){err=e.getMessage();success= false;}
return new BoolString(success,err,outString);
}
// a utility class to signal success or failure, return an error message, and return a useful String value
// see Try Out in C#
public final class BoolString {
public final boolean success;
public final String err;
public final String value;
public BoolString(boolean success, String err, String value){
this.success= success;
this.err= err;
this.value= value;
}
}
1
暗号として「DESede」を指定する必要があります。 DESedeKeySpecおよびthis exampleを参照してください。
0
を持っています。 私は多くの理由でAES(Advance Encryption Standard)を使用することをお勧めします。まず第一にそれはより大きいキーサイズを提供し、暗号化アプリケーションの作成前に識別されなければならない弱く弱いキーはありません。さらに、AESは、差分暗号解読などの他の理論攻撃に対して脆弱ではありません。
関連する問題
- 1. Android rc4暗号化
- 2. 暗号化python /復号化android
- 3. Android暗号化edittext入力
- 4. RSA暗号化/復号化
- 5. AES暗号化/復号化
- 6. 暗号化/復号化soll
- 7. 復号化、暗号化
ありがとう非常に仲間! – cris
このソリューションは機能しましたか? – Darpan