2017-06-18 2 views
-2

J'essaie de créer un schéma de cryptage simple pour les chaînes. Chaque caractère de la chaîne reçoit une autre valeur ASCII.Cryptage de chaîne simple - sécurité des caractères ascii supérieurs

Il s'agit d'écrire des caractères ascii jusqu'à 246 dans un fichier simple sur le disque.

Je veux savoir s'il est sûr d'écrire ces caractères spéciaux sur le disque ou s'il peut causer des résultats fâcheux. Merci de votre aide.

Edit: Je considère algorithme similaire à ce qui suit:

* Convert each character of string to its integer number (hence 110 for 'n' and 122 for 'z') 
* Double that number (get 220 and 244) 
* Convert this to character (will get extended ascii codes) 
* Save these characters to file. 

Est-il sûr de sauver ces extended ascii characters aux fichiers de disque à l'aide des fonctions d'écriture de fichiers de texte habituel?

+1

Que signifie "caractères ascii jusqu'à 246"? –

+0

Notez que nous sommes dans un monde post-ASCII, et cela ne signifie pas seulement d'autres langues, pense emoji. – zaph

+0

@JamesKPolk et @ Zaph: S'il vous plaît voir modifier dans ma question ci-dessus. – rnso

Répondre

0

Il existe seulement un ensemble limité de caractères ASCII. Il y a 95 caractères imprimables tels que 'A' mais aussi le caractère espace. Il y a 33 caractères imprimables tels que Line Feed, Carriage Return, NUL mais aussi DELETE. Vous ne pouvez donc pas utiliser 246 caractères ASCII, car il n'y en a que 128 au total. ASCII est strictement 7 bits vous donnant 2^7 = 128 valeurs possibles.

Même si vous utilisiez le jeu de caractères latins ISO 8859 ou le jeu de caractères Windows-1252, vous auriez toujours les caractères de contrôle non imprimables à gérer, vous laissant 256 - 33 - 5 caractères ou 218 caractères. Windows-1252 a toujours 5 caractères non définis.

Ce que vous pouvez faire est bien sûr de sauvegarder vos données sous forme d'octets. Chaque octet a 256 valeurs possibles (généralement de 0 à 255 ou de -128 à 127). Tant que vous ouvrez les fichiers en tant que binaire, cela ne pose aucun problème.


Vous pouvez bien sûr stocker autant de caractères dans un fichier que vous le souhaitez, jusqu'à la limite du système de fichiers ou du système d'exploitation. Donc, je présume que vous n'avez pas demandé que.

+0

S'il vous plaît voir modifier dans ma question ci-dessus. – rnso

+0

Je ne vois aucune raison de changer ma réponse. Lire/écrire des octets cryptés, décrypter en caractères et les montrer. De cette façon, vous n'avez pas besoin d'entrer dans tous ces détails sur les jeux de caractères, ce qui est plus complexe à comprendre que de déchiffrer votre code de chiffrement. –