首页 > 编程 > .NET > 正文

使用vb.net加密和解密文件。(好象英文灵,中文不灵)

2024-07-10 13:04:16
字体:
来源:转载
供稿:网友
imports system
imports system.io
imports system.security
imports system.security.cryptography
imports system.text

module encrypt
    private const ssecretkey as string = "password"

    public sub main()
        encryptfile("c:/temp/test.txt", _
                        "c:/temp/encrypted.txt", _
                        ssecretkey)
        decryptfile("c:/temp/encrypted.txt", _
                    "c:/temp/decrypted.txt", _
                    ssecretkey)
    end sub

    sub encryptfile(byval sinputfilename as string, _
                       byval soutputfilename as string, _
                       byval skey as string)

        dim fsinput as new filestream(sinputfilename, _
                                    filemode.open, fileaccess.read)
        dim fsencrypted as new filestream(soutputfilename, _
                                    filemode.create, fileaccess.write)

        dim des as new descryptoserviceprovider()

        '为des算法设置安全码.
        '必须是64位,8个字节
        des.key = asciiencoding.ascii.getbytes(skey)


        des.iv = asciiencoding.ascii.getbytes(skey)

        '创建des加密码实例
        dim desencrypt as icryptotransform = des.createencryptor()
        '
        dim cryptostream as new cryptostream(fsencrypted, _
                                            desencrypt, _
                                            cryptostreammode.write)

        '读取文件到数组
        dim bytearrayinput(fsinput.length - 1) as byte
        fsinput.read(bytearrayinput, 0, bytearrayinput.length)
        '写到加密文件中
        cryptostream.write(bytearrayinput, 0, bytearrayinput.length)
        cryptostream.close()
    end sub

    sub decryptfile(byval sinputfilename as string, _
        byval soutputfilename as string, _
        byval skey as string)

        dim des as new descryptoserviceprovider()
        des.key() = asciiencoding.ascii.getbytes(skey)
        des.iv = asciiencoding.ascii.getbytes(skey)

        '读取加密文件
        dim fsread as new filestream(sinputfilename, filemode.open, fileaccess.read)
        '
        dim desdecrypt as icryptotransform = des.createdecryptor()
        '
        dim cryptostreamdecr as new cryptostream(fsread, desdecrypt, cryptostreammode.read)
        '输出到解密文件
        dim fsdecrypted as new streamwriter(soutputfilename)
        fsdecrypted.write(new streamreader(cryptostreamdecr).readtoend)
        fsdecrypted.flush()
        fsdecrypted.close()
    end sub
end module

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表