Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
TrippleDES Encryption anyone?
Message
 
 
À
Tous
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Titre:
TrippleDES Encryption anyone?
Divers
Thread ID:
01530801
Message ID:
01530801
Vues:
92
Looking for VFP code to perform what's known as "TrippleDES" encryption/ decryption. I got the c# sample code below.
Would be nice to get a VFP translation or link to an existing module.
Apparently it is a common algo used in many applications.
C# Decrypt Code Example:
        private string DecryptString(string ToDecrypt)
        {
            string Key = "SGVsbG8gV29ybGQ=";
            byte[] inputArray = Convert.FromBase64String(ToDecrypt);
            TripleDESCryptoServiceProvider tripleDES = new TripleDESCryptoServiceProvider();
            tripleDES.Key = UTF8Encoding.UTF8.GetBytes(Key);
            tripleDES.Mode = CipherMode.ECB;
            tripleDES.Padding = PaddingMode.PKCS7;
            ICryptoTransform cTransform = tripleDES.CreateDecryptor();
            byte[] resultArray = cTransform.TransformFinalBlock(inputArray, 0, inputArray.Length);
            tripleDES.Clear();
            return UTF8Encoding.UTF8.GetString(resultArray);
        }

;; CipherMode is ECB, PaddingMode is PKCS7.Also the key is UTF8 encoded.

I also found the following VB sample code.
Private
Shared Sub EncryptData(inName As String, outName As String, _
   tdesKey() As Byte, tdesIV() As Byte)
    'Create the file streams to handle the input and output files.
    Dim fin As New FileStream(inName, FileMode.Open, FileAccess.Read)
    Dim fout As New FileStream(outName,FileMode.OpenOrCreate, _
           FileAccess.Write)
    fout.SetLength(0)
    'Create variables to help with read and write.
    Dim bin(100) As Byte 'This is intermediate storage for the encryption.
    Dim rdlen As Long = 0 'This is the total number of bytes written.
    Dim totlen As Long = fin.Length 'This is the total length of the input file.
    Dim len As Integer 'This is the number of bytes to be written at a time.
    Dim tdes As New TripleDESCryptoServiceProvider()
    Dim encStream As New CryptoStream(fout, _
       tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write)
    Console.WriteLine("Encrypting...")
    'Read from the input file, then encrypt and write to the output file.
    While rdlen < totlen
        len = fin.Read(bin, 0, 100)
        encStream.Write(bin, 0, len)
        rdlen = rdlen + len
        Console.WriteLine("{0} bytes processed", rdlen)
    End While
    encStream.Close()
End Sub
Thank you in advance.
Cyrus Nima
-------------------
cyrusnima@gmail.com
Répondre
Fil
Voir

Click here to load this message in the networking platform