易语言入门远程桌面管理工具

附件下载

最新远程桌面连接源码.zip

附件大小:448 KB

学币 :100

立即支付

远程桌面管理工具

黑白课堂
黑白课堂

RDP代码分享

RDP密码加解密代码

.版本 2

.程序集 功能程序集

.子程序 RDP加密, 文本型, , 失败返回空
.参数 明文, 文本型, , 要加密明文密码
.局部变量 DataIn, DATA_BLOB, , , 输入 要加密的数据
.局部变量 DataOut, DATA_BLOB, , , 输出 加密后的数据
.局部变量 pbDataInput, 字节集, , , Unicode格式的明文密码
.局部变量 pbDatatxtx, 字节集, , , 成功加密后的密文字节集数据
.局部变量 返回密文, 文本型, , , 处理后的返回密文
.局部变量 临时文本, 文本型
.局部变量 i, 整数型

pbDataInput = Ansi转Unicode ( 明文 )
DataIn.pbData = lstrcpyn_字节 (pbDataInput, 0, 0)  ' 获得内存地址
DataIn.cbData = 取字节集长度 (pbDataInput) + 1  ' 获得要加密的数据大小
.如果真 (CryptProtectData (DataIn, Ansi转Unicode (“psw”), 0, 0, 0, 0, DataOut) = 真 )  ' 执行加密操作,返回“真”代表加密完成
    pbDatatxtx = 指针到字节集 (DataOut.pbData, DataOut.cbData)
    LocalFree (DataOut.pbData)  ' 释放指针指向的内存地址 使句柄失效。
    临时文本 = 取空白文本 (100)
    .计次循环首 ( 取字节集长度 (pbDatatxtx), i)  ' 处理这个字节集里面的每个字节
        sprintf ( 临时文本, “%02X”, pbDatatxtx [i])  ' “%02X”格式控制:以十六进制输出,2为指定的输出字段的宽度.如果位数小于2,则左端补0
        返回密文 = 返回密文 + 临时文本
    .计次循环尾 ()
    返回 ( 返回密文 )
.如果真结束
返回 (“”)

.子程序 RDP解密, 文本型, , 失败返回空
.参数 密文, 文本型, , 需要解密的密文
.局部变量 DataIn, DATA_BLOB, , , 输入 要解密的密文
.局部变量 DataOut, DATA_BLOB, , , 输出 已解密的明文
.局部变量 pbDataInput, 字节集
.局部变量 描述指针, 整数型, , , 描述字符串指针,指向描述信息的位置 可设为0
.局部变量 返回明文, 文本型, , , 已解密的明文
.局部变量 临时字节集, 字节集, , , sscanf() 的数据将写入该值内
.局部变量 i, 整数型

临时字节集 = 取空白字节集 (1)
.变量循环首 (1, 取文本长度 ( 密文 ), 2, i)
    sscanf ( 取文本中间 ( 密文, i, 2), “%02x”, 临时字节集 )
    pbDataInput = pbDataInput + 临时字节集
.变量循环尾 ()
DataIn.cbData = 取字节集长度 (pbDataInput)  ' 获得数据大小
DataIn.pbData = lstrcpyn_字节 (pbDataInput, 0, 0)  ' 获得指针(内存地址)

.如果真 (CryptUnprotectData (DataIn, 描述指针, 0, 0, 0, 0, DataOut) = 真 )
    返回明文 = 指针到文本_Unicode版 (DataOut.pbData)
    LocalFree (DataOut.pbData)  ' 释放指针指向的内存地址 使句柄失效。
    返回 ( 返回明文 )
.如果真结束
返回 (“”)

.子程序 Ansi转Unicode, 字节集
.参数 参数_14387, 文本型
.局部变量 局部变量_14389, 整数型
.局部变量 局部变量_14394, 字节集
.局部变量 局部变量_14398, 整数型

局部变量_14389 = MultiByteToWideChar (936, 0, lstrcpyn_文本 ( 参数_14387, 0, 0), -1, 0, 0) × 2
局部变量_14398 = GlobalAlloc (64, 局部变量_14389 × 2)
MultiByteToWideChar (936, 0, lstrcpyn_文本 ( 参数_14387, 0, 0), -1, 局部变量_14398, 局部变量_14389 × 2)
局部变量_14394 = 指针到字节集 ( 局部变量_14398, 局部变量_14389)
GlobalFree ( 局部变量_14398)
返回 ( 局部变量_14394)

.子程序 指针到文本_Unicode版, 文本型, , 取内存中Unicode字符串文本。返回指定内存指针所指向地址处的文本,注意调用本命令前一定要确保所提供的内存指针真实有效,且指向一个以零字符结束的文本串。
.参数 Unicode字串内存指针, 整数型
.局部变量 局部变量_42687, 字节型, , "0"
.局部变量 局部变量_42688, 整数型

.如果真 (Unicode字串内存指针 ≠ 0)
    局部变量_42688 = lstrlenW (Unicode字串内存指针 ) × 2 + 8
    .如果真 ( 局部变量_42688 ≠ 0)
        重定义数组 ( 局部变量_42687, 假, 局部变量_42688 - 1)
        RtlMoveMemory ( 局部变量_42687, Unicode字串内存指针, 局部变量_42688)
        返回 (Unicode转Ansi ( 到字节集 ( 局部变量_42687)))
    .如果真结束
.如果真结束
返回 (“”)

.子程序 Unicode转Ansi, 文本型
.参数 参数_25966, 字节集
.局部变量 局部变量_25967, 文本型
.局部变量 局部变量_25968, 文本型
.局部变量 局部变量_25969, 整数型

局部变量_25969 = WideCharToMultiByte (0, 0, 参数_25966, -1, 字符 (0), 0, 0, 假 )
局部变量_25968 = 取空白文本 ( 局部变量_25969)
WideCharToMultiByte (0, 0, 参数_25966, -1, 局部变量_25968, 局部变量_25969, 0, 假 )
返回 ( 局部变量_25968)

评论区 (0)

没有记录
支持 markdown,图片截图粘贴拖拽都可以自动上传。
空气

空气 · 中级学士

热卖技术,喜欢新东西。

周VIP 魔童降世
查看更多

最新视频课程

钻级赞助商