Meilleur auteur de réponses
ulong problème

Question
-
Bonjour, j'ai un algorithme qui crypte une string, le seul probleme est que je suis limité à 8 bytes.
Voici le code :byte[] test = Encoding.ASCII.GetBytes(textBox1.Text); long f = 0; for (int i = 0; i < test.Length; i++) { f = f + (((long)test[i] * 4) << (8 * i)); } ulong c = (ulong)f; string hex = String.Format("{0:x2}", (ulong)System.Convert.ToUInt64(c.ToString())); if (hex.Length % 2 != 0) { hex = "0" + hex; } textBox1.Text = hex;
Expliquez moi comment je pourrais faire pour doubler la taille, je voudrais pouvoir écrire sur une longueur de 15 bytes
Réponses
-
Bonjour
Cet algorithme ressemble plutôt à un calcul d’un chiffre de contrôle.
Vous pouvez essayer d’utiliser BigInteger en place de long ou ulong :
http://msdn.microsoft.com/fr-fr/library/system.numerics.biginteger(v=vs.110).aspx
Bien cordialement,Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse Rousselin mardi 5 août 2014 09:02
Toutes les réponses
-
Bonjour
Cet algorithme ressemble plutôt à un calcul d’un chiffre de contrôle.
Vous pouvez essayer d’utiliser BigInteger en place de long ou ulong :
http://msdn.microsoft.com/fr-fr/library/system.numerics.biginteger(v=vs.110).aspx
Bien cordialement,Aurel BERA, MSFT
MSDN Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE.
S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.- Marqué comme réponse Rousselin mardi 5 août 2014 09:02
-
Merci beaucoup, j'ai appliqué ce code et cela fonctionne.
byte[] test = Encoding.ASCII.GetBytes(textBox1.Text); BigInteger bigint64 = new BigInteger(0); for (int i = 0; i < test.Length; i++) { bigint64 = bigint64 + (((BigInteger)test[i] * 4) << (8 * i)); } string hex = String.Format("{0:x2}", bigint64.ToString("X2")); if (hex.Length % 2 != 0) { hex = "0" + hex; } textBox1.Text = hex;