Board logo

标题: [加密解密] 批处理加密工具BatchEncryptor V1.1 [打印本页]

作者: cjiabing    时间: 2012-2-26 14:27     标题: 批处理加密工具BatchEncryptor V1.1

本帖最后由 cjiabing 于 2012-3-14 15:20 编辑

终于真正的完成了!只是一个GTR变GEQ,害我弄了几天!~
以下是最新版的,比较稳定了:
      作用:将文本字符转换为一种新字符,达到加密的目的。
      方法:移位法和替换法。
      性质:对称式加密。
      安全性:解密过程可逆,安全性一般(肉眼难分辨)。
      效率:单行字符数较少时效率一般,单行字符数达100以上时效率差。
      原理:原字符——数字编码——新字符。设定一个元码——一个类似ASCII的字符表,然后查找单个字符在元码中的位置,表示为一个数字。然后采用将首字符转移到末位置的换位法对这个位置数字进行加密——此处可以换成你的加密法。经过加密,获得一个新的数字,利用这个数字反查元码表,获得新的字符。解密方法可逆。
      用法:输入字符或拖入文件即可演示加密和解密。
      拓展:本程序可将英文字符转换为数字,你可以对该数字编码进行加密,按提示操作即可。
  1. @echo off&COLOR 0c &::By Cjiabing From 批处理之家 Http://www.bathome.net
  2. set "Symbol= !#$%%&'()*+,-./0123456789;:<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"…—·,。"
  3. setlocal enabledelayedexpansion
  4. call :length Symbol
  5. set /a SymbolLen=%len%/2
  6. ::echo;"%Symbol%"  验证,共%SymbolLen%位数。
  7. ::%Symbol%改编自ASCII,百分号变两个,双引号放后面,添加了几个中文标点符号。
  8. if exist "%~1" set "Input=%~1"&goto InputFile
  9. :Input 输入
  10. cls&title 批处理加密机 BatchEncryptor V1.1 Demo
  11. echo;
  12. echo;
  13. echo;                                              BatchEncryptor V1.1 Demo
  14. echo;
  15. echo;  ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
  16. echo;                   采用转换法将输入字符转换为新字符;字符转数字,可扩展。
  17. echo;                 每行最长支持4096字长;效率相对低些;可直接拖入文件编码。
  18. echo;                     默认使用数字、大小写字母、英文标点符号、空格等编码。
  19. echo;  ﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌﹌
  20. echo;
  21. set Input=
  22. set /p "Input=          请输入:"
  23. if not "!Input!"=="" (goto InputFile) else (goto Input)
  24. :InputFile 文件处理
  25. set num=0
  26. if exist "!Input!" (
  27.     for /f "tokens=*" %%a in ("!Input!") do set "FileName=%%~na"&set "FilePath=%%~dpa"
  28.     cd.>%~dp0!FileName!_Encode.txt&cd.>%~dp0!FileName!_Decode.txt
  29.     for /f "usebackq tokens=*" %%a in ("!Input!") do set "Input=%%a"&echo;&set /a num+=1&echo;      !num!.加密字符【!Input!】&call :length Input&call :Contrl Input
  30. ) else call :length Input&call :Contrl Input
  31. echo;
  32. title 》》编码完成。&echo;&echo;          编码完成!请按任意键返回 . . .
  33. pause>nul
  34. goto Input
  35. :Contrl 控制台,控制加密和解密的总体顺序。
  36. call :Encode %1
  37. ::##此处为加密调用,处理的是输入的字符Input。##
  38. if defined WordName call :Decode WordName
  39. ::##此处为解密调用,处理的是上次加密得到的结果WordName。##
  40. goto :eof
  41. :Encode
  42. title 》》正在加密,1000字符加解密用时50秒左右,请稍候  . . .
  43. call :WordToCode %1
  44. Rem echo;        加密编码【!CodeName!】
  45. ::##可在此处添加你的加密算法的具体引用和调节等。##
  46. set CodeName=!CodeName:~1,1000000!!CodeName:~0,1!
  47. ::##当前采用的是编码首字符移位到编码末尾之调整移位。##
  48. ::##注意:该编码对Symbol要求高,可能存在缺陷##
  49. call :CodeToWord CodeName
  50. echo;          新密码【!WordName!】
  51. if exist "!FilePath!" echo;!WordName!>>%~dp0!FileName!_Encode.txt
  52. goto :eof
  53. :Decode
  54. title 》》正在解密,字符越长需要的时间越长!  . . .
  55. call :WordToCode %1
  56. Rem echo;        解密编码【!CodeName!】
  57. ::##可在此处添加你的解密算法的具体引用和调节等。##
  58. set CodeName=!CodeName:~-1,1!!CodeName:~0,-1!
  59. ::##当前采用的是编码首字符移位到编码末尾之恢复移位##
  60. call :CodeToWord CodeName
  61. echo;          原密码【!WordName!】
  62. if exist "!FilePath!" echo;!WordName!>>%~dp0!FileName!_Decode.txt
  63. goto :eof
  64. :length 计算字符长度 code by plp626
  65. set "$=!%1!#"
  66. set len=&for %%a in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1)do if !$:~%%a^,1!. NEQ . set/a len+=%%a&set $=!$:~%%a!
  67. endlocal&If %2. neq . (set/a%2=%len%)else set /a len=%len%*2
  68. setlocal
  69. goto :eof
  70. :WordToCode 字符转编码
  71. set CodeName=
  72. for /l %%i in (0,1,%len%) do (
  73.     for /l %%a in (0,1,%SymbolLen%) do if not "!%1:~%%i,1!"=="" if "!Symbol:~%%a,1!"=="!%1:~%%i,1!" (
  74.          if %%a geq 10 (set CodeName=%%a!CodeName!) else (set CodeName=0%%a!CodeName!)
  75.     )
  76. )
  77. goto :eof
  78. ::%%i针对输入字符串的字数,%%a针对元码个数。
  79. ::echo "!Symbol:~%%a,1!"=="!%1:~%%i,1!" %%a==!CodeName!
  80. :CodeToWord 编码转字符
  81. set WordName=
  82. for /l %%i in (0,2,%len%) do (
  83.     for /l %%a in (0,1,%SymbolLen%) do (
  84.         if  "!WordName!"=="!Input!" (set "WordName=!WordName!") else (
  85.             if  "!%1:~%%i,2!"=="%%a" set "WordName=!Symbol:~%%a,1!!WordName!"
  86.             if  "!%1:~%%i,2!"=="0%%a"  set "WordName=!Symbol:~%%a,1!!WordName!"
  87.         )
  88.     )
  89. )
  90. goto :eof
  91. ::##可将你的代码复制粘贴到后面。##
复制代码

作者: cjiabing    时间: 2012-2-26 14:28     标题: PasswordEncryption V1.0.bat测试文本

本帖最后由 cjiabing 于 2012-3-13 21:58 编辑

测试文本:英文字符,奥巴马的演讲词
  1. One minute of Eldrige Cleaver is worth 10 minutes of Roy Wilkins. The labor crisis settled at the negotiating table is nothing compared to the confrontation that results in a strike -- or better yet, violence along the picket lines. Normality has become the nemesis of the network news.Now the upshot of all this controversy is that a narrow and distorted picture of America often emerges from the televised news. A single, dramatic piece of the mosaic becomes in the minds of millions the entire picture. The American who relies upon television for his news mightconclude that the majority of American students are embittered radicals; that the majority of black Americans feel no regard for their country; that violence and lawlessness are the rule rather than the exception on the American campus.We know that none of these conclusions is true.Perhaps the place to start looking for a credibility gap is not in the offices of the Government in Washington but in the studios of the networks in New York!
  2. HIJKLMN9abcdefg1][|}{';7UVWXYZ?!。,、;:<3uvwxyz0hijklmn2*()_+-\4ABCDEFG6:/.,?!%^&=8OPQRST&quot;1=09876543212=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ&quot;3=0987654321abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ5=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321`~!@#$%^&*()_+-=\][|}{';&quot;:/.,?><&quot;set">5opqrst`~@#$><3uvwxyz0hijklmn2*()_+-\4ABCDEFG6:/.,?!%^&=8OPQRST"1=09876543212=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"<&quot;set">3=0987654321abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ5=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321`~!@#$%^&*()_+-=\][|}{';":/.,?><"set "<*()+-\]][|}{/">4=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0987654321`~@#$><*()+-\]][|}{/.?!。,、;:《》“”''…"set "6=〇一二三四五六七八九十零壹贰叁肆伍陆柒捌玖拾百千万亿兆京垓秭穰沟涧正载极甲乙丙丁戊己庚辛壬癸子丑寅卯辰巳午未申酉戌亥鼠牛虎兔龙蛇马羊猴鸡犬猪"set "7=梅寒兰幽竹清菊隐松高牡丹荷莲玫瑰百合勿忘我水仙鸢尾花一品红风信子郁金香康乃馨芙蓉石榴牵牛山茶茉莉蔷薇向日葵桃李杏薰衣草夜来樱月桂紫丁罗含羞桔梗蒲公英昙龙舌三叶柳杜鹃薄荷色堇矢车菊仙人掌大理红豆枫忧曼陀罗"set "8=乾天坤地水雷屯山蒙需讼地师比风小畜泽履泰否火同人大有谦豫随蛊临观噬嗑贲剥复无妄颐过坎为离咸恒遁壮晋明夷家睽蹇解损益夬姤萃升困井革鼎震艮渐归妹丰旅巽兑涣节中孚既济未阴阳五行金木土八卦龙凤元亨利贞一--"
  3. 12341235
  4. abcdefg
  5. GGGGG
  6. @echo off&COLOR 0c &title 批处理加密机 BatchEncryptor &::By Cjiabing From 批处理之家 Http://www.bathome.net
  7. set "Symbol= !#$%%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~"…—·"
  8. setlocal enabledelayedexpansion
复制代码


第一段加密结果:


dkx']<nPGy'q·']Vn1=(x'IVxOYy1)5<)]y2G3(]T!]<nPGyq·'{ux)I;ZP<n<G!+0x'SPYw2)]1=<=<)5yEG[xm'IE)?3x'gx'xF=PE=n((?QYYx'5<)gxF3<n((]wd·P1ym'?y(?3x']wn·1ynFQE=xn(?3PE)+y[F=)5n(I'5G3=Px'56!q2)SwEGy1)qyE3!S=xZxmdw'IYxn((?3x'{<dOxE)S<nx:G!Su2ePY<Fy)+P:)Swcwdx'?3x'gxcx:=<)q·'?3x'gxEey2Q(gxc=GTud)?3x'I,<3xF)q·'IYZ(?3<<)]wnF3yZy1=y)5<)?3PE)I'gP13yd)Imn'g:<Gy2Gym'{<dEQ3y'q·'5`x1=dO'q·Eym(qcx1)x:){1yd(?3x'?yYxY=<ym'gxc=G!5$5=n(Zx1!g1QcPE=d'{<xcw'q·'?3x']x<Q:d'Swcwdx:)5n(?3x']<nn:)q·']<ZZ<xn<)?3x'qmF=2y'{<dEQ3yE!+0x'5`x1=dOm(]3x(+yY<x:)I,xn(?yYxY=<=xn({w2)+<<)gxc=)]<(2FewndYPow'?3PE)?3x']PEx2=Fy)q·'5`x1=dOm(5GQowmF=)I1y'qcZ:FGy1ym'+Qm:dOY<[#?3PE)?3x']PEx2=Fy)q·'SYPcO(5`x1=dOm<){wwY(gx(+y'P1o'{w2)?3x:2)]wPoF3y[#?3PE)S=xZxmdw'Imn'SPc[x:=ox:=)I1y'?3x'+Q[x'+QE3x1)?3Pm(?3x'qmew—F=xn(qn(?3x'5`x1=dOm(]Oc·P=GJv'Inxd)?3PE)gxnx'q·'?3x:y']wndYP==xn<)5<)?3QyEhu13P—<)?3x'{ZPcw'?y(5GQ1G)SxxP<n(({w2)I']1ym:Z:Z<Fy) P—(5<)gxF)5n(?3x'q·—:dw:)q·'?3x'qtZy1odxmF)5n(IN:3<n(Fyn(SOG)5n(?3x'5GQo:x<)q·'?3x'gxEey2Q<)5n(Suc)]v2Q

作者: Tomjovi    时间: 2012-3-7 20:38

好东西,只不过第二个代码不能直接复制,必须要删掉前边的几个空格
作者: cjiabing    时间: 2012-3-7 21:20

回复 3# Tomjovi


    我想修改下,可改来改去都没有达到目的,所以只好挂着这个帖。
   太多的内容、两行以上最好用文本txt保存好些。
作者: cjiabing    时间: 2012-3-7 21:23     标题: BatchEncryptor V1.1.bat

本帖最后由 cjiabing 于 2012-3-13 21:48 编辑

最新版更新到顶楼,此处留作一个网络账号加密的新版本。
作者: conglin58    时间: 2012-4-12 23:06

复制到本地试试看!
作者: 小黑熊    时间: 2012-4-22 15:44

要是支持中文就更好了
作者: 小黑熊    时间: 2012-4-22 15:46

??我的回复怎么不见了




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