비밀번호 입력란에 사용자가 추가 한 비밀번호를 암호화하는 방법을 아는 사람이 있습니까?내 비밀번호를 암호화하는 방법 - Android Studio
이 튜토리얼을 시도했지만 작동하지 않았다.
https://gist.github.com/aogilvie/6267013#file-string_encrypt_decrypt-md
나는 누군가가이 문제를 해결할 나 :(
비밀번호 입력란에 사용자가 추가 한 비밀번호를 암호화하는 방법을 아는 사람이 있습니까?내 비밀번호를 암호화하는 방법 - Android Studio
이 튜토리얼을 시도했지만 작동하지 않았다.
https://gist.github.com/aogilvie/6267013#file-string_encrypt_decrypt-md
나는 누군가가이 문제를 해결할 나 :(
public class AESCrypt
{
private static final String ALGORITHM = "AES";
private static final String KEY = "1Hbfh667adfDEJ78";
public static String encrypt(String value) throws Exception
{
Key key = generateKey();
Cipher cipher = Cipher.getInstance(AESCrypt.ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, key);
byte [] encryptedByteValue = cipher.doFinal(value.getBytes("utf-8"));
String encryptedValue64 = Base64.encodeToString(encryptedByteValue, Base64.DEFAULT);
return encryptedValue64;
}
public static String decrypt(String value) throws Exception
{
Key key = generateKey();
Cipher cipher = Cipher.getInstance(AESCrypt.ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, key);
byte[] decryptedValue64 = Base64.decode(value, Base64.DEFAULT);
byte [] decryptedByteValue = cipher.doFinal(decryptedValue64);
String decryptedValue = new String(decryptedByteValue,"utf-8");
return decryptedValue;
}
private static Key generateKey() throws Exception
{
Key key = new SecretKeySpec(AESCrypt.KEY.getBytes(),AESCrypt.ALGORITHM);
return key;
}
}
사용을 도울 수 있기를 바랍니다.
완벽한 해결책! 그것은 내 문제를 해결 ... 고마워! – Addy1992
모드를 지정하지 않고 암호화 알고리즘 ("AES")을 지정하기 만하면 채우기가 완료되지 않고 해당 기본 설정이 특정 임팩트로 유지됩니다. 세 가지 모두 "AES/CBC/PKCS5Padding"과 같이 제공되어야합니다. 이 대답은 ECB 모드와 PKCS5Padding을 사용하고있는 것 같지만 코드를 읽는 것으로 추측됩니다. – zaph
ECB 모드를 사용하지 마십시오. 안전하지 않습니다. [ECB 모드] (https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation#Electronic_Codebook_.28ECB.29)에서 펭귄까지 스크롤하십시오. 대신 무작위 IV가있는 CBC 모드를 사용하고 암호화 된 데이터 앞에 IV를 사용하여 암호 해독에 사용하십시오. – zaph
견적이 게시물 Difference between Hashing a Password and Encrypting it 난 당신이 해싱 (NO 암호화)를 사용하는 것이 좋습니다 예 : md5 (권장하지 않음), sha1, sha2 ...
SHA1의 예시 구현 : How to SHA1 hash a string in Android?
** ** 암호를 암호화하지 마십시오 ** 공격자가 DB를 얻게되면 암호 키도 받게됩니다. 약 100ms 동안 무작위 소금으로 HMAC를 반복하고 소금을 해시로 저장하십시오. 'password_hash' /'password_verify','PBKDF2' (일명'Rfc2898DeriveBytes'),'Bcrypt'와 같은 함수를 사용하십시오. 요점은 공격자가 무차별 적으로 암호를 찾는 데 많은 시간을 소비하게하는 것입니다. – zaph