Simple d'obscurcissement de la chaîne dans la .NET?
J'ai besoin d'envoyer une chaîne de 30 caractères sur internet, qui sera probablement jusqu'à la fin comme un ID dans une autre base de données.
Alors que la chaîne elle-même ne sera pas identifier, je voudrais encore qu'il ne soit pas reconnaissable en aucune façon.
Quelle est la manière la plus facile de dissimuler une telle chaîne .NET, de sorte qu'il peut facilement être inversée lorsque cela est nécessaire?
Si il peut facilement être inversée alors quel est le point?
Facilement renversée lorsque vous savez comment faire, j'imagine.
Auriez-vous une liste de chaînes d'origine disponible pour le match contre? Si oui, regarde dans les algorithmes de hachage.
Je veux simplement d'empêcher les gens d'inspection de la base de données et de voir les données tout de suite.
Je ferais un ROT13 transformation un bon exemple ici: stackoverflow.com/a/18739120/187030
Facilement renversée lorsque vous savez comment faire, j'imagine.
Auriez-vous une liste de chaînes d'origine disponible pour le match contre? Si oui, regarde dans les algorithmes de hachage.
Je veux simplement d'empêcher les gens d'inspection de la base de données et de voir les données tout de suite.
Je ferais un ROT13 transformation un bon exemple ici: stackoverflow.com/a/18739120/187030
OriginalL'auteur Paul Lassiter | 2012-10-23
Vous devez vous connecter pour publier un commentaire.
Comment sur quelque chose de classique (avec une touche de modernité).
Qui, de toute évidence, vous utilisez comme ce
Son rapide, votre clé est juste un
Int16
et il permettra d'éviter l'observateur occasionnel, de le copier-coller de la valeur, mais, ce n'est pas sécurisé.- J'aime 🙂 dire que j'ai été le stockage de cette chaîne de caractères dans une page html et je voulais unCeaser et utiliser la chaîne de caractères via javascript, pouvez-vous me montrer comment cela pourrait fonctionner ?
qui pourrait être délicat. Alors que je pourrais écrire un javascript équivalent de cette fonction, une combinaison de
shift
et unicode pourrait produirechar
des valeurs qui ne correspondent pas à de véritables points de code unicode.C'est très bien si les données sont transférées sous forme binaire entre .Net tous les composants, mais quand c'est rendu via HTTP à un navigateur inconnu je ne peux pas être certain de ce qui va arriver. Si vous pouvez limiter la plage de char valeurs de votre chaîne et de l'ampleur deshift
vous seriez probablement ok, mais je serais tenté de trouver une "fonte" alternatifs".Jodrell compris, fonte alternative a été trouvée 😉 merci encore.
OriginalL'auteur Jodrell
Comment sur:
et son inverse:
tant que vous n'avez pas l'esprit une augmentation de la longueur de votre chaîne
==
terminator qui me fait toujours penser à, qui doit être en base64.Pouvez-vous expliquer un peu ce que cette dissimulation n' (en terme de bits)?
il fait ce qu'il dit sur l'étain: convertit la chaîne de l'encodage base64, un codage sur lequel vous trouverez l'abondance de la documentation si vous regardez. Le codage Base64 n'est pas facilement lisible par la plupart des êtres humains, fournissant ainsi un niveau de base de la dissimulation, mais cette technique ne prétend pas être sécurisé.
base64 est beaucoup trop facile à deviner le format
À mon humble avis, si vous vous souciez de savoir si l'algorithme peut être facilement deviné, vous devriez être en utilisant le cryptage plutôt que de l'obscurcissement.
OriginalL'auteur Joe
Essayer de le chiffrer avec, par exemple, AES, si vous connaissez le cryptage de la clé sur l'autre machine, vous pouvez facilement décrypter il y
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aes(v=vs. 100).aspx
Il existe de nombreux exemples de code autour de. Par exemple, j'ai trouvé ce post par une recherche rapide, même si c'est seulement 128 bits, je pense que ça devrait faire l'affaire
À l'aide du cryptage AES en C#
C'est dans les deux sens, de "incassable" et simple à mettre en œuvre (par opposition à l'écriture de votre propre "encryptor').
Vos fichiers de configuration d'application, comme en asp par exemple appsettings
La clé peut être codé en dur - si c'est seulement pour mettre fin à la chaîne d'être visible dans une 3e partie base de données.
l'incassable affirmation est discutable quand la clé est codée en dur.
OriginalL'auteur middelpat
J'ai été inspiré par la réponse par @Jodrell, et voici ma version alternative. La seule vraie différence, c'est que j'utilise l'opérateur modulo, au lieu de la si-alors-sinon de la construction.
Et si vous, comme moi, n'avaient jamais entendu parler du chiffre de César utilisé avant, voici un lien:
https://en.wikipedia.org/wiki/Caesar_cipher
Et un peu de code de test:
OriginalL'auteur RenniePet