Bonjour, j'ai un problême avec une chaine de caractère sous Oracle et je voudrais savoir si quelqu'un peut m'aider:
Je voudrai stocker une chaine de caractère provenant d'un hash et d'un XOR (oui je sais c'est tordu), et la stocker dans une table java en vu de défaire le XOR à la sortie pour retrouver la chaine d'origine.
En gros ça donne ça:
String a="bonjour"
String b="je vais etre hashe"
Je hash b avec messageDigest sur l'algo SHA-256 => je récupère un tableau de bytes que je stocke dans la String c avec new String(byte[])
Je XOR a et c => je stocke dans la String d
Je stocke d dans une base Oracle dans une colonne de type VARCHAR(32), d étant une chaine de caractère complètement pourrie mais là n'est pas la question ce qui m'interesse étant son tableau de byte correspondant
Plus tard, je récupère d, et là, attention mesdames et messieurs, devant vos yeux ébahis: ce n'est plus la même chaine!!!
Et encore ce n'est pas le plus étrange, je travaille sous eclipse, et dans la console, les lettres CHANGENT AU FUR ET A MESURE QUE JE LES SELECTIONNE!!!! si je fais un copier collé dans l'éditeur c'est pareil
A mon avis j'ai un sérieux problême d'encodage des caractères, ma question est donc la suivante: comment stocker un tableau de byte en Oracle en brut, sans que celui-ci ne change quoi que ce soit?
Merci de m'aider parce que j'ai tout essayé (en passant par RAW de oracle.sql.RAW ou par un BigInteger), mais je dois mal m'y prendre
PS: Si malgré tout je persiste dans mon dexorage, je retrouve une chaine de caractère s'apparentant à celle d'origine ("bonjour"), mais avec plein de petits carrés devant et certains caractères modifiés. Ces petits carrés se modifiant également lorsque je les sélectionne dans l'éditeur d'Eclipse (c'est pas évident à décrire visuellement, en gros certains disparaissent mais pas tous non plus)
Partager