2010-04-09 9 views
0

J'ai cette configuration suivante, une zone de texte nommé avec certaines données dans ce qui peut avoir des retours chariot et un autre textarea qui a style='display:none' afin de le rendre caché comme suit:Comment puis-je conserver les retours chariot lorsque je crypte des données?

<textarea id="myTextarea" onBlur="encryptMyData()"></textarea> 
<textarea name="encryptedText" style='display:none'></textarea> 

l'utilisateur entre des données dans le premier textarea et quand cette zone de texte perd le focus, la fonction javascript 'encryptMyData()' appelle un appel ajax pour prendre tout ce que l'utilisateur a saisi dans le premier textfield, le crypte en utilisant rijndael et le colle dans la zone de texte encryptedText afin qu'il soit stocké dans la base de données plus tard.

Maintenant, ce que je dois faire est de trouver un moyen de convertir les retours de chariot avant le cryptage à une balise comme [cr] afin que lorsque je récupère les données, tout le formatage est conservé. Une idée de comment je fais ça? J'utilise asp.net et C# pour effectuer le cryptage.

+0

Je ne suis pas certain de comprendre parfaitement: voulez-vous que les données cryptées apparaissent avec le même formatage que les données en texte clair? –

+1

Pourriez-vous poster le code de votre méthode de cryptage en C#? Je suppose que vous avez juste à faire une chaîne simple.Replace() avant le cryptage. –

Répondre

2

Vos caractères de nouvelle ligne sont probablement présents dans les données cryptées. Si vous voulez absolument "afficher" les données cryptées avec des sauts de ligne, vous devrez probablement faire un stringData.Split(Environment.NewLine), crypter chaque chaîne résultante séparément, puis String.Join(Environment.NewLine, arrayOfEncryptedDataLines) les chaînes ensemble avant de retourner à la page Web.

-Edit-

Vous pourriez être mieux ne va pas par le serveur, cependant. Jetez un oeil à http://www.hanewin.net/encrypt/aes/aes.htm

+0

Je serais méfiant de faire quelque chose lié à la sécurité (comme le texte de cryptage semblerait être) dans le code côté client. Mais bon lien, néanmoins, et spot-on avec le reste de la réponse. – Dathan

0

Fondamentalement, l'appel AJAX à votre service est probablement décapage les nouvelles lignes, de sorte que vous aurez besoin de faire la conversion avant que vous appelez le service Web.

RENDUS votre fonction encryptMyData un remplacement avant de l'envoyer au serveur:

// assuming sometext contains the contents of myTextarea 
// Perform a global replace for all occurrences of a new line with [CR]: 
sometext = sometext.replace(/\n/g, "[CR]"); 

ensuite passer someText à l'appel ajax, plutôt que la valeur droite de la zone de texte.

Questions connexes