Conversion de char[] en byte[]
Salut à tous,
voilà je voudrais convertir un tableau de caractères (char[]) en un tableau de bytes (byte[]).
Pourquoi je veux faire ça? Pour stocker des mots de passe, je reçois donc un char[] (plus sécurisé qu'un String, voir JPasswordFiled pour savoir pourquoi) , et je dois le hasher. Mais on ne hashe que des byte[], et il n'est pas question de faire (new String(char[])).getBytes() pour les mêmes raisons de sécurité qu'avant.
Enfin soit là n'est pas la question, je veux juste obtenir le tableau de bytes issu d'un tableau de caractères, comment faire?
Merci d'avance pour vos réponses;)
Obtenir un byte[] à partir d'un char[] / Ecraser un objet en mémoire
Salut à tous,
voilà je voudrais obtenir un tableau de byte à partir d'un tableau de char, et ceci en n'utilisant QUE DES TYPES PRIMITIFS. En effet le password doit être hashé (nécéssite un byte[] en paramètres) et je ne veux pas conserver de trace de ce password en mémoire.
Du coup je dois obtenir un byte[] et une fois utilisé remplacer tous les éléments des deux tableaux par un élément identique (pour effacer le passage de la mémoire, comme ces données sont des types primitifs je suis certain que ces éléments identiques vont se placer exactement au même endroit en mémoire que les éléments qu'ils remplacent.
La question 1 est donc : comment obtenir un byte[] à partir d'un char[] ?
Une autre solution à priori plus simple consiste à faire new String(charArray).getBytes(), ça va me donner un tableau de bytes à partir d'un tableau de char. MAIS j'utilise un String, et donc il y a quelque part en mémoire une trace de mon passage. Pour l'effacer, je dois créer un String d'exactement la m^me taille que le précédent, et le mettre exacteemnt au même endroit en mémoire, seulement voilà, comment puis-je faire ça
L'alternative est donc : comment écraser un objet en mémoire?