.bat如何用md5加密?

用%%%%a 的方式的就没必要来回答了.谢谢.

.bat如何使用md5加密?
请赐教!!
或者其他不易被反编译的加密方式也行..
ppxox - 千总 四级
你这样说,我不明白呀- -

我写了一个比较大的.bat...不想让自己心血白费咯.
当然要加下密.!加了就共享..

//////////////////////////////////////////////////
//
首先你要明白两点:
1.批处理是靠cmd.exe解释运行的
2.md5不是加密算法而是“信息摘要算法”,不管多大的文件或者多长的字符串只返回16或32位的hash信息

所以md5不可逆,而且不是严格意义的加密算法?要说加密的话也应该是rsa,des这些IEEE认证的算法的

你的问题,可以写个exe,把加密后的bat作为资源捆绑进exe中,然后由exe负责解密运行,但这样得不偿失,成本太高,还不如直接写exe来的快

如果你非要加密想来想去只有一个比较经济可行的方法,用winrar把批处理做成一个可执行的解压文件,就是exe格式的rar包,然后给这个exe文件加个强壳,这样可以在一定程度上保护起来,但是内行还是可以解出来的

最后,共享是一种美德,虽然我基本可以肯定你哪个所谓的bat技术含量不会太高。。
/////////////////////////////////////////////
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-05-18
Imports System.Security.Cryptography '使用其中的MD5散列算法加密encrypt()

'MD5加密,128位散列值,转换为16进制字符,返回32位字符串
Public Shared Function MD5(ByVal str As String) As String
Dim arrHashInput As Byte()
Dim arrHashOutput As Byte()
Dim objMD5 As New MD5CryptoServiceProvider
arrHashInput = Convert2ByteArray(str) '本类的函数
arrHashOutput = objMD5.ComputeHash(arrHashInput)
MD5 = BitConverter.ToString(arrHashOutput)
'原字符串以"-"隔开,去掉"-"
MD5 = Replace(MD5, "-", "")
End Function

或者:

使用ASP.NET加密口令
当我们在网站上建立数据库时,保护用户的信息安全是非常必要的。多数用户不愿意让别人知道自
己的信息,同时网管也不想因为安全问题而丢失网站的信誉。无论对于谁,安全问题都是非常重要的。
为了解决这个问题,我给大家提供一个简单实用,但是老套的方法,就是口令加密。在此我们使用ASP.NET技术对口令加密。简单的讲,就是将用户提供的口令加密之后,然后让它和存放于系统中的数据比较,如果相同,则通过验证。
在ASP中,并未提供加密的对象,我们只能使用外部的对象来进行加密。现在好了,在ASP.NET中提供了加密的解决方法。在名字空间System.Web.Security中包含了类FormsAuthentication,其中有一个方法HashPasswordForStoringInConfigFile。这个方法可以将用户提供的字符变成乱码,然后存储起来,甚至可以 存储在cookies中。
HashPasswordForStoringInConfigFile方法使用起来很简单,它支持"SHA1"和"MD5"加密算法。
下面的代码简单的演示了关于其用法:
<%@ Page language="c#" %>
<%@ Import Namespace="System.Web.Security" %>
<html>
<head>
<script language="C#" runat="server">
public void encryptString(Object sender, EventArgs e)
{
SHA1.Text = FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text,"SHA1");
MD5.Text =FormsAuthentication.HashPasswordForStoringInConfigFile(txtPassword.Text, "MD5") ;
}
</script>
</head>
<body>
<form runat="server" ID="Form1">
<p>
<b>Original Clear Text Password: </b>
<br/>
<asp:Textbox id="txtPassword" runat="server" />
<asp:Button runat="server" text="Encrypt String" onClick="encryptString" ID="Button1" />
</p>
<p>
<b>Encrypted Password In SHA1: </b>
<asp:label id="SHA1" runat="server" />
</p>
<p>
<b>Encrypted Password In MD5: </b>
<asp:label id="MD5" runat="server" />
</p>
</form>
</body>
</html>

正如你所看到的这样简单易用。我们可以把这段加密程序封装在一个函数里便于重复的使用。代码如下:
public string EncryptPassword(string PasswordString,string PasswordFormat )
{
if (PasswordFormat="SHA1"){
EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"SHA1");
}
elseif (PasswordFormat="MD5")
{ EncryptPassword=FormsAuthortication.HashPasswordForStoringInConfigFile(PasswordString ,"MD5");
}
else
{
EncryptPassword="";
}

我们可以在数据库中添加一个字段,使用insert将加密的口令作为一个string存入数据库中。当用户登陆的时候,就可以将用户输入的口令加密结果和数据库中的正确结果比较,通过这种办法来验证口令的正确性了。
第2个回答  2008-05-18
转帖]cmd加密码

下面的这个是 设置在运行cmd.exe 的时候 自动执行 linux.bat 的 方法:

打开注册表编辑器,
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Command Processor]
将"AutoRun"="c:\linux.bat"

接着就是 linux.bat的内容了

@echo off
@color c
@prompt [fire@火焰linux $p]
@doskey pwd=cd $*
@doskey mkdir=md $*
@doskey rmdir=rd $*
@doskey mv=move $*
@doskey clear=cls
@doskey uname=ver
@doskey cp=copy
@cls
@D:\perl\bin\perl D:\perl\hello1.pl

rem 上面的 是 执行 我编辑的 perl的 代码的 命令行 个人的路径有所不同 请根据自己的情况而定
@D:\haike\perl\1.vbs

rem 这个是 一个 vbs 脚本 执行一个弹出窗口的
@echo 欢迎来到"火焰" 系统

然后就是 要安装的 一个工具 就是 上面 要运行的 perl 代码的工具 ActivePerl
这个程序 是用来 运行 perl 代码的
本来我想用 最新的 perl2exe 编译成 exe 文件 可惜 这个工具对 其中的加密的 代码
不能确认 导致编译失败 所以只好放弃 使用 perl2exe 用了这个工具直接执行 perl
代码来实现 :

好 现在来 写perl代码

首先编辑 hello1.pl
内容为:
#!/user/bin/perl -w
use Digest::MD5 qw( md5_base64 );#制定一个函数
$pass1='4QrcOUm6Wau+VuBX8g+IPg'; #加密后的字符串 这里的是 123456 得出的 字符串
print '请输入你的名字:';
$a=<STDIN>; #截取输入的内容 和shell下的 read类似
chomp $a; #赋值给a
print "请输入pass(如果输入错误就会自动关闭cmd):";
$pass=<STDIN>;
chomp $pass;
$pass=md5_base64($pass); #用上面制定的函数对pass的值运算出加密代码
if ($pass eq $pass1){
print "口令正确\n";
sleep 0.5; #延时时间 可以自己决定 不延时的话就直接注释掉
exec 'cls';
#验证是否正确并且延时并且清除输入
} else {
sleep 1.5;
print "口令错误";
exec 'taskkill','/F','/IM','cmd.exe','/IM','WScript.exe';#如果错误就调用系统的 命令杀掉cmd.exe进程
}
exit;

然后编辑 一个 得到 上面加密密码字符串的 工具
pass.pl 运行这个脚本 只要进入perl 执行工具的目录中 (也可以在环境变量中加上目录 那就不需要加目录运行了)
perl pass.pl 就会让你输入口令 然后产生字符串 把字符串 粘贴 替换掉 #加密后的字符串 的那一行""中的内容就行了

pass.pl 内容如下:
#!/usr/bin/perl -w
use Digest::MD5 qw( md5_base64 );
print " 请输入需要加密的字符串:";
$pass=<STDIN>;
chomp $pass;
$pass1=md5_base64($pass);
print "加密后的字符串为:$pass1 \n";

剩下的 一个是 1.vbs 的内容了 这个可要可不要 我只是为了好看罢了!!
内容如下 :
DIM WSH
SET WSH=WSCRIPT.CreateObject("WSCRIPT.SHELL")
WSH.POPUP("欢迎来到 ☆火焰☆ 系统")

这个会跳出一个窗口 显示上面的文字内容

呵呵 !!!
一个简单的 加密 cmd.exe 的使用的 方法就成了
当然 这种方法需要 对 用户权限进行设置 所以只有 ntfs 格式的才行
因为 在运行过程中 cmd的窗口上方的标题栏 会显示 读取 的c:\linux.bat 的准确路径
就算是 禁用了注册表 别人只要删除了 c:\linux.bat 文件 这个对cmd.exe 使用的方法 就没用了
第3个回答  2008-05-18
生成EXE,然后再加密加壳就可以了

MD5不可逆,你加密了怎么运行?
第4个回答  2008-05-18
自己编个MD5算法加密存进去就行了.
相似回答