Board logo

标题: [数值计算] [已解决]能用批处理把字符串值转成二进制值吗? [打印本页]

作者: zljzsmzzx    时间: 2009-7-10 22:10     标题: [已解决]能用批处理把字符串值转成二进制值吗?

问题更新:
在注册表里面新建一个值的时候不是有字符串值、二进制值、DWORD值、多字符串值和可扩充字符串值可供选择吗?我这里说的二进制值就是这个。我不知道注册表里的二进制值是怎么定义的。我是在安装一个软件的过程中要输入账号和密码,然后账号和密码由安装程序自动导入注册表,账号是以字符串值导入的,所以我直接用reg add的REG_SZ导入就可以了,但是密码是以二进制值导入的,密码是“7vucdfxn57”,对应导入注册表后的值是“56D6A2E9A8F098F23F6453ADCFC87775D9311CBC”。这个值是在安装软件后用reg query得到的,类型是REG_BINARY,即二进制值。因为我的账号密码要不定时更换的,而密码我又只知道字符串值形式的,就是像“7vucdfxn57”这样的。所以我想问有没有办法把“7vucdfxn57”REG_SZ类型的值转换成“56D6A2E9A8F098F23F6453ADCFC87775D9311CBC”REG_BINARY类型的值。这样我就可以用批处理读取账号密码列表来更换密码了。所以我不是要转成通常意义上的二进制值,因为那个二进制值的有效数字好像只有0和1吧。

[ 本帖最后由 zljzsmzzx 于 2009-7-20 09:04 编辑 ]
作者: defanive    时间: 2009-7-11 00:32

这个。。。

LZ提供哦你的值不是十六进制的么。。。

要换的话BAT也可以,不过效率很低。。。

可以用VBS中的&H来转换。。。
作者: rat    时间: 2009-7-11 05:17

vbs
  1. WSH.Echo Str2Hex("123456")
  2. Function Str2Hex(S)
  3. Dim i, sResult
  4. sResult = ""
  5. For i = 1 To Len(S)
  6. sResult = sResult & Hex(Asc(Mid(S, i, 1)))
  7. Next
  8. Str2Hex = sResult
  9. End Function
复制代码

作者: 随风    时间: 2009-7-11 15:08

  1. @echo off&color 1f&title 十六进制 转 二进制
  2. set mmm=56D6A2E9A8F098F23F6453ADCFC87775D9311CBC
  3. call :16x2 %mmm% ok
  4. echo.&echo  十六进制 %mmm%
  5. echo.&echo    二进制 %ok%
  6. echo.&pause&exit
  7. ::以4位一段,分别转换为二进制,不必考虑超大数问题
  8. :16x2 十六进制 转 二进制  @随风 @bbs.bathome.net (封装)
  9. @echo off&setlocal enabledelayedexpansion
  10. set str=0123456789abcdef&set ok=&set "num=%~1"
  11. for /l %%a in (0 1 15) do (set ".!str:~%%a,1!=%%a"
  12. call set "num=%%num:!str:~%%a,1!= !str:~%%a,1!%%")
  13. for %%i in (!num!) do (set /a x=0,n=!.%%i!
  14. for %%a in (8 4 2 1) do (set /a x+=%%a
  15. if !n! geq !x! (set ok=!ok!1) else (
  16. set ok=!ok!0&set /a x-=%%a)))
  17. endlocal&set %~2=%ok%&goto :EOF
复制代码

作者: defanive    时间: 2009-7-11 19:21

请楼主说清楚到底是把什么进制转化成什么进制,以免造成误会
作者: zljzsmzzx    时间: 2009-7-13 01:42

问题已更新过了,现在应该比原来说得更清楚了。
作者: zljzsmzzx    时间: 2009-7-16 11:10

没有办法了吗?大家帮帮忙啊。
作者: netbenton    时间: 2009-7-17 19:22

这可不是简单的进制转换,是数据加密,等哪位牛人来把它破解吧!
作者: zljzsmzzx    时间: 2009-7-20 09:03

是哦。我怎么就没想到这层呢,应该是软件自身经过特殊的计算方法得到的。看来批处理是没有办法解决了。还是上百度知道里看看有没有高手胡破解的。




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