网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 vbs 加解密 for capicom
内容
    代码如下:
    '******************************************************************************
    '
    ' this code and information is provided as is without warranty of any kind,
    ' either expressed or implied, including but not limited to the implied
    ' warranties of merchantability and/or fitness for a particular purpose.
    '
    ' copyright (c) 1999- 2002. microsoft corporation. all rights reserved.
    '
    '******************************************************************************
    '
    ' cencrypt.vbs
    '
    ' this is a sample script to illustrate how to use the capicom's encrypteddata
    ' to encrypt/decrypt text file.
    '
    ' note: for simplicity, this script does not handle exception.
    '
    '******************************************************************************
    option explicit
    const forreading = 1, forwriting = 2
    ' command.
    const unknown = 0
    const encrypt = 1
    const decrypt = 2
    ' capicom's constants.
    const capicom_encryption_algorithm_rc2 = 0
    const capicom_encryption_algorithm_rc4 = 1
    const capicom_encryption_algorithm_des = 2
    const capicom_encryption_algorithm_3des = 3
    const capicom_encryption_algorithm_aes = 4
    const capicom_encryption_key_length_maximum = 0
    const capicom_encryption_key_length_40_bits = 1
    const capicom_encryption_key_length_56_bits = 2
    const capicom_encryption_key_length_128_bits = 3
    const capicom_encryption_key_length_192_bits = 4
    const capicom_encryption_key_length_256_bits = 5
    ' command line arguments.
    dim command : command = unknown
    dim password : password = null
    dim algorithm : algorithm = capicom_encryption_algorithm_rc2
    dim keylength : keylength = capicom_encryption_key_length_maximum
    dim verbose : verbose = false
    dim filenames()
    ' first make sure the script is executed by cscript.exe.
    if instr(1, ucase(wscript.fullname), cscript.exe, vbtextcompare) = 0 then
    wscript.echo this script can only be executed by cscript.exe. & vbcrlf & vbcrlf &_
    you can either: & vbcrlf & vbcrlf & _
    1. set cscript.exe as the default (run cscript //h:cscript), or & vbcrlf & _
    2. run cscript.exe directly as in, cscript & wscript.scriptname & .
    wscript.quit(-1)
    end if
    ' parse the command line.
    parsecommandline
    ' now process the command.
    select case command
    case encrypt
    doencryptcommand filenames, algorithm, keylength, password
    case decrypt
    dodecryptcommand filenames, password
    end select
    wscript.quit(0)
    ' end main
    '******************************************************************************
    '
    ' subroutine: doencryptcommand
    '
    ' synopsis : encrypt content of text file filenames(0).
    '
    ' parameter : filenames - array of filenames.
    '
    ' algorithm - encryption algorithm
    '
    ' keylength - key size.
    '
    ' password - secret password.
    '
    '******************************************************************************
    sub doencryptcommand (filenames, algorithm, keylength, password)
    dim content
    dim message
    dim encrypteddata
    ' create the encrypteddata object.
    set encrypteddata = createobject(capicom.encrypteddata)
    ' set algorithm, key size, and encryption password.
    encrypteddata.algorithm.name = algorithm
    encrypteddata.algorithm.keylength = keylength
    encrypteddata.setsecret password
    ' display main title.
    wscript.stdout.writeline encrypting text file & filenames(0) & .
    wscript.stdout.writeline
    ' display more detail for verbose operation.
    if verbose then
    displaydetail encrypteddata
    end if
    ' load content of text file to be encrypted.
    loadfile filenames(0), content
    ' now encrypt it.
    encrypteddata.content = content
    message = encrypteddata.encrypt
    ' finally, save encrypted message to filenames(1).
    savefile filenames(1), message
    wscript.stdout.writeline successful - encrypted message saved to & filenames(1) & .
    ' free resources.
    set encrypteddata = nothing
    end sub ' end doencryptcommand
    '******************************************************************************
    '
    ' subroutine: dodecryptcommand
    '
    ' synopsis : decrypt an encrypted file.
    '
    ' parameter : filenames - array of filenames.
    '
    ' password - secret password.
    '
    '******************************************************************************
    sub dodecryptcommand (filenames, password)
    dim message
    dim encrypteddata
    ' create the encrypteddata object.
    set encrypteddata = createobject(capicom.encrypteddata)
    ' set decryption password.
    encrypteddata.setsecret password
    ' display main title.
    wscript.stdout.writeline decrypting encrypted text file & filenames(0) & .
    wscript.stdout.writeline
    ' load the encrypted message.
    loadfile filenames(0), message
    ' now decrypt it.
    encrypteddata.decrypt(message)
    ' display more detail for verbose operation.
    if verbose then
    displaydetail encrypteddata
    end if
    ' finally, save decrypted content to filenames(1).
    savefile filenames(1), encrypteddata.content
    wscript.stdout.writeline successful - decrypted content saved to & filenames(1) & .
    ' free resources.
    set encrypteddata = nothing
    end sub ' end dodecryptcommand
    '******************************************************************************
    '
    ' subroutine: loadfile
    '
    ' synopsis : read content of a text file.
    '
    ' parameter : filename - input text filename.
    '
    ' buffer - string buffer to receive the text file content.
    '
    '******************************************************************************
    sub loadfile (filename, buffer)
    dim fso
    set fso = createobject(scripting.filesystemobject)
    if not fso.fileexists(filename) then
    wscript.stdout.writeline error: file & filename & not found.
    wscript.quit(-5)
    end if
    dim ts
    set ts = fso.opentextfile(filename, forreading)
    buffer = ts.readall
    end sub ' end loadfile
    '******************************************************************************
    '
    ' subroutine: savefile
    '
    ' synopsis : save string to file.
    '
    ' parameter : filename - output filename.
    '
    ' buffer - string buffer to be saved.
    '
    '******************************************************************************
    sub savefile (filename, buffer)
    dim fso
    set fso = createobject(scripting.filesystemobject)
    dim ts
    set ts = fso.opentextfile(filename, forwriting, true)
    ts.write buffer
    end sub ' end savefile
    '******************************************************************************
    '
    ' subroutine: displaydetail
    '
    ' synopsis : display detail information.
    '
    ' parameter : encrypteddata - encrypteddata object.
    '
    '******************************************************************************
    sub displaydetail (encrypteddata)
    dim algonames(4)
    algonames(0) = rc2
    algonames(1) = rc4
    algonames(2) = des
    algonames(3) = 3des
    algonames(4) = aes
    wscript.stdout.writeline algorithm : & algonames(encrypteddata.algorithm.name)
    wscript.stdout.write key length:
    select case encrypteddata.algorithm.keylength
    case capicom_encryption_key_length_40_bits
    wscript.stdout.writeline 40 bits
    case capicom_encryption_key_length_56_bits
    wscript.stdout.writeline 56 bits
    case capicom_encryption_key_length_128_bits
    wscript.stdout.writeline 128 bits
    case capicom_encryption_key_length_192_bits
    wscript.stdout.writeline 192 bits
    case capicom_encryption_key_length_256_bits
    wscript.stdout.writeline 256 bits
    case else
    wscript.stdout.writeline maximum
    end select
    wscript.stdout.writeline
    end sub ' end displaydetail
    '******************************************************************************
    '
    ' subroutine: parsecommandline
    '
    ' synopsis : parse the command line, and set the options accordingly.
    '
    ' parameter : none
    '
    '******************************************************************************
    sub parsecommandline
    ' constants for command line parsing states.
    const arg_state_command = 0
    const arg_state_options = 1
    const arg_state_algorithm = 2
    const arg_state_length = 3
    const arg_state_filename = 4
    const arg_state_password = 5
    const arg_state_end = 6
    ' parse command line.
    dim arg
    dim argstate : argstate = arg_state_command
    for each arg in wscript.arguments
    select case argstate
    case arg_state_command
    select case ucase(arg)
    case encrypt
    command = encrypt
    case decrypt
    command = decrypt
    case else
    displayusage
    end select
    argstate = arg_state_options
    case arg_state_options
    select case ucase(arg)
    case -alg, /alg
    argstate = arg_state_algorithm
    case -length, /length
    argstate = arg_state_length
    case -v, /v
    verbose = true
    case -?, /?
    displayusage
    case else
    if left(arg, 1) = - or left(arg, 1) = / then
    displayusage
    else
    redim filenames(0)
    filenames(0) = arg
    end if
    argstate = arg_state_filename
    end select
    case arg_state_algorithm
    if left(arg, 1) = - or left(arg, 1) = / then
    displayusage
    else
    select case ucase(arg)
    case rc2
    algorithm = capicom_encryption_algorithm_rc2
    case rc4
    algorithm = capicom_encryption_algorithm_rc4
    case des
    algorithm = capicom_encryption_algorithm_des
    case 3des
    algorithm = capicom_encryption_algorithm_3des
    case aes
    algorithm = capicom_encryption_algorithm_aes
    case else
    displayusage
    end select
    end if
    argstate = arg_state_options
    case arg_state_length
    if left(arg, 1) = - or left(arg, 1) = / then
    displayusage
    else
    select case ucase(arg)
    case 40
    keylength = capicom_encryption_key_length_40_bits
    case 56
    keylength = capicom_encryption_key_length_56_bits
    case 128
    keylength = capicom_encryption_key_length_128_bits
    case 192
    keylength = capicom_encryption_key_length_192_bits
    case 256
    keylength = capicom_encryption_key_length_256_bits
    case max
    keylength = capicom_encryption_key_length_maximum
    case else
    displayusage
    end select
    end if
    argstate = arg_state_options
    case arg_state_filename
    if left(arg, 1) = - or left(arg, 1) = / then
    displayusage
    else
    redim preserve filenames(ubound(filenames) + 1)
    filenames(ubound(filenames)) = arg
    end if
    argstate = arg_state_password
    case arg_state_password
    if left(arg, 1) = - or left(arg, 1) = / then
    displayusage
    else
    password = arg
    end if
    argstate = arg_state_end
    case else
    wscript.stdout.writeline internal script error: unknown argument state ( & cstr(argstate) & ) encountered.
    wscript.quit(-3)
    end select
    next
    ' make sure we are in good state.
    if argstate <> arg_state_end then
    displayusage
    end if
    end sub ' parsecommandline
    '******************************************************************************
    '
    ' subroutine: displayusage
    '
    ' synopsis : display the usage screen, and then exit with a negative error
    ' code.
    '
    ' parameter : none.
    '
    '******************************************************************************
    sub displayusage
    select case command
    case unknown
    wscript.stdout.writeline usage: cencrypt command [options] infile outfile password
    wscript.stdout.writeline
    wscript.stdout.writeline command:
    wscript.stdout.writeline
    wscript.stdout.writeline encrypt -- encrypt a text file
    wscript.stdout.writeline decrypt -- decrypt an encrypted text file
    wscript.stdout.writeline
    wscript.stdout.writeline for help on a specific command, enter cencrypt command -?
    case encrypt
    wscript.stdout.writeline usage: cencrypt encrypt [options] contentfile encryptedfile password
    wscript.stdout.writeline
    wscript.stdout.writeline the encrypt command is used to encrypt a text file based on a secret password.
    wscript.stdout.writeline encrypting protects the data from being read by others except those who know
    wscript.stdout.writeline the secret password.
    wscript.stdout.writeline
    wscript.stdout.writeline options:
    wscript.stdout.writeline
    wscript.stdout.writeline -alg <algorithm> -- rc2, rc4, des, 3des, or aes (default to rc2)
    wscript.stdout.writeline -length <key length> -- 40, 56, 128, 192, 256, or max (default to max,
    wscript.stdout.writeline and ignored for des or 3des)
    wscript.stdout.writeline -v -- verbose operation
    wscript.stdout.writeline -? -- this help screen
    wscript.stdout.writeline
    wscript.stdout.writeline contentfile -- text file to be encrypted
    wscript.stdout.writeline
    wscript.stdout.writeline encryptedfile -- encrypted text file
    wscript.stdout.writeline
    wscript.stdout.writeline note: all non-fatal invalid options for this specific command will be ignored.
    wscript.stdout.writeline
    case decrypt
    wscript.stdout.writeline usage: cencrypt decrypt [options] encryptedfile contentfile password
    wscript.stdout.writeline
    wscript.stdout.writeline the decrypt command is used to decrypt an encrypted text file.
    wscript.stdout.writeline
    wscript.stdout.writeline options:
    wscript.stdout.writeline
    wscript.stdout.writeline -v -- verbose operation
    wscript.stdout.writeline -? -- this help screen
    wscript.stdout.writeline
    wscript.stdout.writeline encryptedfile -- encrypted text file
    wscript.stdout.writeline
    wscript.stdout.writeline contentfile -- decrypted text file
    wscript.stdout.writeline
    wscript.stdout.writeline note: all non-fatal invalid options for this specific command will be ignored.
    wscript.stdout.writeline
    case else
    wscript.stdout.writeline internal script error: unknown help state (command = & cstr(command) & ).
    wscript.quit(-2)
    end select
    wscript.quit(-1)
    end sub ' end displayusage
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/17 11:05:29