2010-05-21 4 views
1

Existe-t-il un moyen de crypter une chaîne ou un fichier de n'importe quelle longueur et de renvoyer une clé de longueur fixe.Sessions de cryptage/décryptage

par exemple:

$str = 'Hello World!'; 
encrypt($str);//returns: "abc123"//a fixed length of characters. 
decrypt('abc123');//returns: "Hello World!"//the contents of the original string. 

ci-dessus est en php

Peut-être tout langage informatique:

Peut-être un nombre fixe aussi longtemps qu'il est fixé

par fixe je veux dire toujours la même chose: 32 caractères, 64 caractères ou caractères X.

J'ai fait des recherches un peu et il semble que ce soit dur ou impossible. mais vous ne savez jamais je pensais que ce pourrait être worthed demander

si vous ne vous demandez ne vous laissez pas :) thnx

Répondre

1

Oui, cela est possible s'il y a une limite supérieure X pour le nombre de caractères que vous voulez chiffrer. Il suffit de crypter en utilisant un algorithme de cryptage, puis en tapant le résultat sur X caractères. S'il n'y a pas de limite supérieure, cela est impossible pour des raisons de théorie de l'information (il faudrait en quelque sorte stocker un nombre illimité de caractères comme un nombre limité de caractères cryptés, ce qui n'est pas possible en général). Pour comprendre pourquoi, recherchez le pigeonhole principle.

+0

La limite supérieure est intéressante - si vous aviez une longueur de cryptogramme de 1e80 par exemple, vous devriez pouvoir couvrir toute entrée sensible. Ce serait cependant assez lent, et je ne sais pas comment vous pourriez stocker le texte chiffré. – Stewart

3

Non il n'y a pas. Vous demandez d'écrire une fonction qui prend n bits d'entrée et renvoie 32 caractères de sortie qui peuvent être inversés. Peu importe le cryptage, si j'avais un algorithme qui pourrait faire que je ferais fortune en vendant la technologie de compression. Ce n'est tout simplement pas possible - 32 caractères de sortie ne peuvent encoder que 32 caractères d'entrée sans perte

+1

Eh bien je pense que j'ai une idée de comment mais je continue à obtenir quelque chose de mal et de le réviser encore et encore. Je ne vais pas donner beaucoup, mais je pense que votre réponse «si j'avais un algorithme qui pourrait faire que je ferais fortune en vendant la technologie de compression» est la raison pour laquelle je ne pouvais pas entrer dans les détails et je voulais savoir si quelque chose comme ça existait :) thnx mate :) – Val

+0

Cela rendrait YouTube tellement plus rapide ... – Thilo

+0

@Val - J'ai vraiment hâte de le voir. Voulez-vous l'appeler Shergar? – Stewart