C#加密/解密方法大全

2012-02-12 10:46:16|?次阅读|上传:wustguangh【已有?条评论】发表评论

关键词:C#, 加密/解密|来源:唯设编程网

5、加密/加密文本文件   


    //加密文件
    private static void EncryptData(String inName
        , String outName
        , byte[] desKey
        , byte[] desIV)
    {
        //Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName
            , FileMode.Open
            , FileAccess.Read);
        FileStream fout = new FileStream(outName
            , FileMode.OpenOrCreate
            , FileAccess.Write);
        fout.SetLength(0);

        //Create variables to help with read and write.
        //This is intermediate storage for the encryption.
        byte[] bin = new byte[100];
        //This is the total number of bytes written.
        long rdlen = 0;
        //This is the total length of the input file.     
        long totlen = fin.Length;
        //This is the number of bytes to be written at a time.
        int len;

        DES des = new DESCryptoServiceProvider();
        CryptoStream encStream = new CryptoStream(fout
            , des.CreateEncryptor(desKey, desIV)
            , CryptoStreamMode.Write);

        //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;
        }

        encStream.Close();
        fout.Close();
        fin.Close();
    }

    //解密文件
    private static void DecryptData(String inName
        , String outName
        , byte[] desKey
        , byte[] desIV)
    {
        //Create the file streams to handle the input and output files.
        FileStream fin = new FileStream(inName
            , FileMode.Open
            , FileAccess.Read);
        FileStream fout = new FileStream(outName
            , FileMode.OpenOrCreate
            , FileAccess.Write);
        fout.SetLength(0);

        //Create variables to help with read and write.
        //This is intermediate storage for the encryption.
        byte[] bin = new byte[100];
        //This is the total number of bytes written.
        long rdlen = 0;
        //This is the total length of the input file.   
        long totlen = fin.Length;
        //This is the number of bytes to be written at a time.
        int len;

        DES des = new DESCryptoServiceProvider();
        CryptoStream encStream = new CryptoStream(
            fout
            , des.CreateDecryptor(desKey, desIV)
            , CryptoStreamMode.Write);

        //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;
        }

        encStream.Close();
        fout.Close();
        fin.Close();
    }
发表评论0条 】
网友评论(共?条评论)..
C#加密/解密方法大全