Comment faire pour crypter/décrypter une chaîne par une autre chaîne de caractères comme un mot de passe?

Je suis en train de faire un programme simple qui prend le texte entré dans une zone de texte, et prend un mot de passe qui est dans une autre zone de texte, puis fait une sorte de chiffrement simple sur elle et l'enregistre dans un fichier. Par la suite, l'utilisateur doit être en mesure d'ouvrir à nouveau le fichier et de fournir le mot de passe utilisé pour crypter et il doit cracher le texte original.

Droit maintenant, je prends de la chaîne. Séparer en char tableau, puis faire de même pour le mot de passe. Après cela, je prends le mot de passe, convertir tous ces caractères en nombres entiers, trouver la valeur moyenne pour tous les d'eux, et l'utiliser comme un décalage pour les chars, il int texte original. Genre:

textChars[1]= (char)((int)textChars[1]+offset);

Alors je peux faire l'inverse pour la chaîne cryptée:

encryptedChars[1]= (char)((int)encryptedChars[1]-offset);

Le problème est que les personnages ont des valeurs différentes sur différentes plates-formes, donc parfois le décalage va tourner le char dans certains nombre fou (comme une valeur négative) qui seront il suffit de tourner le char en un point d'interrogation.

J'ai regardé la crypto dans la bibliothèque standard de Java de l'API, mais je me sens confus quant à la façon dont la clé fonctionne si c'est juste généré de façon aléatoire à chaque fois que je démarre le programme.

Ce dont j'ai besoin est de deux fonctions qui ressemblent à des String encrypt(String text,String Password) qui crache le texte chiffré avec le mot de passe comme une clé de décryptage, et String decrypt(String encryptedText, String Password) qui serait cracher le texte original (ou le charabia, si le mot de passe est indésirable)

Toute aide est très apprécié, c'est vraiment juste un projet personnel, donc je n'ai pas besoin de fantaisie méthodes de cryptage.

oh oui MD5 est une façon, je ne pouvais pas être bourré la lecture de post:)
double possible de Java 256 bits AES

OriginalL'auteur RangerMauve | 2011-10-14