Lorsque vous voulez crypter quelque chose, vous ne voulez pas que la clé à déchiffrer soit décidée par vous et non par un générateur de nombres aléatoires?Pourquoi la clé aes devrait-elle être générée aléatoirement?
Je vois ce code dans le post de stackoverflow. mais je ne veux pas que la clé soit générée aléatoirement je veux que l'utilisateur soit invité à entrer la clé et sur ce bases le cryptage devrait arriver ..
des suggestions comment devrais-je modifier le code?
SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
KeySpec spec = new PBEKeySpec(password, salt, 1024, 256);
SecretKey tmp = factory.generateSecret(spec);
SecretKey secret = new SecretKeySpec(tmp.getEncoded(), "AES");
De plus, grâce à la génération aléatoire, la clé est généralement sélectionnée dans l'espace «clé», ce qui signifie que les clés définies par l'utilisateur sont généralement limitées aux lettres et aux chiffres. – mjv
Eh bien, vous pourriez compenser cela en demandant à un utilisateur plus de lettres et de chiffres et en hachant l'entrée pour avoir la largeur nécessaire. – sharptooth
Oui, c'est exactement ce que fait le code OP à l'aide de PBKDF2. – erickson