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

请输入您要查询的范文:

 

标题 vbs 十六进制异或加密实现代码
范文
    文件不要过大,最好不要超过 100 kb,密钥不要用数字,不想改了。理论上支持任何二进制文件格式
    代码都封装成函数了,方便调用:
    代码如下:
    key = www-enun-net '不要用数字
    wscript.echo now & , 加密:
    mydata = readbin(test.jpg)
    endata = encoder(mydata)
    writebin e_test.jpg, endata
    wscript.echo now & , 加密:
    wscript.echo now & , 解密:
    mydata = readbin(e_test.jpg)
    undata = uncoder(mydata)
    writebin u_test.jpg, undata
    wscript.echo now & , 解密:
    function readbin(filename)
    dim stream, objxml, mynode
    set objxml = createobject(microsoft.xmldom)
    set mynode = objxml.createelement(binary)
    set stream = createobject(adodb.stream)
    mynode.datatype = bin.hex
    stream.type = 1
    stream.open
    stream.loadfromfile filename
    mynode.nodetypedvalue = stream.read
    stream.close
    readbin = mynode.text
    set mynode = nothing
    set stream = nothing
    set objxml = nothing
    end function
    function writebin(filename, bufferdata)
    dim stream, objxml, mynode
    set objxml = createobject(microsoft.xmldom)
    set mynode = objxml.createelement(binary)
    set stream = createobject(adodb.stream)
    mynode.datatype = bin.hex
    mynode.text = bufferdata
    stream.type = 1
    stream.open
    stream.write mynode.nodetypedvalue
    stream.savetofile filename, 2
    stream.close
    set stream = nothing
    set mynode = nothing
    set objxml = nothing
    end function
    function encoder(data)
    dim k, m
    for n = 0 to len(key)-1
    k = k & asc(left(right(key, len(key)-n), 1)) & #
    next
    data = ucase(data)
    for i = 0 to len(data)-1
    m = left(right(mid(data, i+1, 1), len(data)-i), 1)
    for j = 0 to len(key)-1
    if i mod len(key) = j then
    encoder = encoder & hex((asc(m) xor split(k, #)(j)))
    end if
    next
    next
    end function
    function uncoder(data)
    dim k
    for n = 0 to len(key)-1
    k = k & # & asc(left(right(key, len(key)-n), 1)) & #x
    next
    k = k & k
    data = ucase(data)
    for i = 1 to len(data) step 2
    for j = 1 to len(key) * 2
    if i mod len(key)*2 = j then
    uncoder = uncoder & chr(split(k, #)(j) xor (&h & mid(data, i, 2)))
    end if
    next
    next
    end function
随便看

 

在线学习网范文大全提供好词好句、学习总结、工作总结、演讲稿等写作素材及范文模板,是学习及工作的有利工具。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/19 17:13:54