Board logo

标题: [文本处理] 求BAT批处理字符串加密解密算法 [打印本页]

作者: xlmc768    时间: 2014-2-14 16:01     标题: 求BAT批处理字符串加密解密算法

需求如下:
现有的bat脚本内容还有明文app密码 比如以下这段
cd c:\daily_job_unload\sql
sqlplus user@admin/abc1234 @daily.sql

需要把明文密码改成密文,一个数据库放一个配置文件比如portal.txt 里面存放加密过的密码,在bat文件中读取这个文件中的加密字符串,并用解密程序解密后赋值到某个字符串变量,再带入sqlplus语句进行执行,
作者: Batcher    时间: 2014-2-14 19:32

不管怎么加密、解密,稍微懂点BAT的人就知道echo一下那个字符串变量就能看到明文密码了。
作者: terse    时间: 2014-2-16 01:42

回复 1# xlmc768
试试 debug
作者: xlmc768    时间: 2014-2-26 17:03

回复 2# Batcher


    不会吧 ,文件里面存的密文,每次跑批之前拿着这段密文用解密程序解密,然后返回明文作为参数传入,执行sql批处理。我对bat不了解,理论上这样做可行吧
作者: xlmc768    时间: 2014-2-26 17:04

回复 3# terse


    刚接触,不太明白你说的debug是指什么?谢谢回复
作者: DAIC    时间: 2014-2-26 17:45

解密之后返回明文作为参数传入给 sqlplus 命令去执行对吧
我只要 echo 一下你的 sqlplus 那行代码就能看到明文密码了。
作者: terse    时间: 2014-2-26 18:41

假设 portal.txt 是加密的文本
  1. @echo off
  2. set "var=ed0 BE 00 01 BF 00 01 AC 34 33 AA E2 FA CD 20"
  3. Rem 单独加密解密执行 echo exit|cmd /kprompt %var% $_g=d0$_w$_q$_|debug portal.txt>nul
  4. for /L %%i in (0,1,1) do (
  5.     echo exit|cmd /kprompt %var% $_g=d0$_w$_q$_|debug portal.txt>nul
  6.     if %%i equ 0 set /pstr=<portal.txt
  7. )
  8. echo %str%
  9. pause
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2