无忧启动论坛

 找回密码
 注册
搜索

G4D的MD5crypt输出格式是?怎样才能让它能够被password命令使用?

查看数: 4070 | 评论数: 11 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-11-5 19:31

正文摘要:

本帖最后由 不知 于 2016-11-5 19:41 编辑 想做个简易密码保护,但是md5crypt好像不能达到预期。 使用命令1: echo 123456 | md5crypt > (md)0x80000+1 ;;cat (md)0x80000+1 ;; cat --locate=: | set skip= ; ...

回复

chenall 发表于 2016-11-7 10:38:16
以下是从QGHO中提取的部份代码

set /p newpwd=Input New Password: || exit
md5crypt %newpwd% | set newpwd=
set newpwd=%newpwd:~11%
echo
echo -n Verify New Password
password --md5 %newpwd%

点评

谢谢指点。  详情 回复 发表于 2016-11-7 12:34
yjqd 发表于 2016-11-8 18:53:49
不知 发表于 2016-11-8 18:35
从echo到%pass%是一条命令,用chenall大元帅的代码吧,简洁多了。

明白了,原来命令可以连写
-----------------------------------------------------------------------------
当然了,chenall大元帅是直接用的截取命令,没写入到内存,代码就少多了
-----------------------------------------------------------------------------
要是微软的echo也有-n参数功能就好了
不知 发表于 2016-11-8 18:36:32
yjqd 发表于 2016-11-8 14:25
好像你1楼命令没写完吧cat --locate=: | set skip=
cat --locate=: (md)0x80000+1 | set skip=

看来确实是换行的问题。谢谢。
不知 发表于 2016-11-8 18:35:35
本帖最后由 不知 于 2016-11-8 19:46 编辑
yjqd 发表于 2016-11-8 14:25
好像你1楼命令没写完吧cat --locate=: | set skip=
cat --locate=: (md)0x80000+1 | set skip=


从echo到%pass%是一条命令,用chenall大元帅的代码吧,简洁多了。


现在其实是这样的:在分区根目录放一文件pass存放密码。
初始密码:
123456
pass内容:
$1$2ei2$Bm7jo8/I0tIbu6B8vsPIW
菜单代码:
find /pass | set pwroot=
cat %pwroot%/pass | set pass=
password --md5 %pass%
timeout 0
default  0

title boot

echo -n Verify  Password:
if "%pass%"=="" echo no password
if not "%pass%"==""  password --md5 %pass%

find --set-root /bootmgr && chainloader /bootmgr
find --set-root /ntldr && chainloader /ntldr

title change password

echo -n Verify  Password:
if "%pass%"=="" echo no password
if not "%pass%"==""  password --md5 %pass%

set /p newpw=Input New Password:
if "%newpw%"=="" echo > %pwroot%/pass && exit
if not "%newpw%"=="" md5crypt %newpw% | set newpw=
set newpw=%newpw:~11%

set /p newpwd=Input New Password Again:
md5crypt %newpwd% | set newpwd=
set newpwd=%newpwd:~11%

if %newpw%==%newpwd%  echo -n %newpwd% > %pwroot%/pass
if not %newpw%==%newpwd%  echo change password failed,please try again,press enter to exit && set /p pause=

点评

明白了,原来命令可以连写 ----------------------------------------------------------------------------- 当然了,chenall大元帅是直接用的截取命令,没写入到内存,代码就少多了 --------------------------  详情 回复 发表于 2016-11-8 18:53
yjqd 发表于 2016-11-8 14:25:46
本帖最后由 yjqd 于 2016-11-8 17:05 编辑
不知 发表于 2016-11-7 12:34
谢谢指点。
知道了,是对md5crypt使用了命令管道的原因,直接在md5crypt后加字符串就没问题。


好像你1楼命令没写完吧cat --locate=: | set skip=
cat --locate=: (md)0x80000+1 | set skip=

echo加参数-n,我测试成功了


见下图虚线框中部分,虚线框上面是没加参数-n

md5测试.jpg (42.09 KB, 下载次数: 83)

echo加参数-n

echo加参数-n

点评

看来确实是换行的问题。谢谢。  详情 回复 发表于 2016-11-8 18:36
从echo到%pass%是一条命令,用chenall大元帅的代码吧,简洁多了。  详情 回复 发表于 2016-11-8 18:35
不知 发表于 2016-11-8 09:28:14
yjqd 发表于 2016-11-8 09:15
记得windows下用md5加密不能用echo %Pass2%>MD5P.TMP,而是用>MD5P.TMP

谢谢,有可能吧,我中午去试一下。
yjqd 发表于 2016-11-8 09:15:37
不知 发表于 2016-11-7 12:34
谢谢指点。
知道了,是对md5crypt使用了命令管道的原因,直接在md5crypt后加字符串就没问题。

记得windows下用md5加密不能用echo %Pass2%>MD5P.TMP,而是用>MD5P.TMP <nul Set/p=%Pass2%这种方式,前者会在MD5P.TMP产生换行,也就是MD5P.TMP的内容为%Pass2%和换行,后者在MD5P.TMP只会存在%Pass2%,不会存在换行

不知道grub4dos中的md5crypt是否和windows下用md5加密不能直接用echo类似
grub4dos的echo参数 -n不知道行不行
echo -n 123456 | md5crypt

点评

谢谢,有可能吧,我中午去试一下。  详情 回复 发表于 2016-11-8 09:28
不知 发表于 2016-11-6 16:02:31
不点 发表于 2016-11-6 15:31
我不相信,置顶的教程里面没有这方面的内容?

如果确实没有的话,那么在搜索引擎里面搜一搜中文教程,实 ...

谢谢
不点 发表于 2016-11-6 15:31:51
我不相信,置顶的教程里面没有这方面的内容?

如果确实没有的话,那么在搜索引擎里面搜一搜中文教程,实在不行的话,找找英文教程。“口令加密” 是 gnu grub 原有的内容,不是 grub4dos 新增的内容。因此,grub legacy 里面的教程,不管是中文还是英文,都是适用的。

百度如果不行,可以试试谷歌或其它搜索引擎。

点评

谢谢  详情 回复 发表于 2016-11-6 16:02
不知 发表于 2016-11-6 14:25:08
看来只有使用明文密码了。

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-30 14:34

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表