前面部分是库文件里面的例子,后面是我改的。
写起来和PHP差不多简单。呵呵,有例子就是好。
源程序里面定义编译不了:
ubyte[4 * 1024] buffer;
我改成了
ubyte[] buffer;
buffer.length = 4 * 1024;
也许下面的写法更好些,谁知道呢?
ubyte[] buffer = new ubyte[4 * 1024];
代码如下:
// This code is derived from the
// RSA Data Security, Inc. MD5 Message-Digest Algorithm.
import std.md5;
private import std.stdio;
private import std.string;
private import std.c.stdio;
private import std.c.string;
int main(char[][] args)
{
foreach (char[] arg; args)
MDFile(arg);
MDString("Hello, D");
return 0;
}
/* Digests a file and prints the result. */
void MDFile(char[] filename)
{
FILE* file;
MD5_CTX context;
int len;
//ubyte[4 * 1024] buffer;
ubyte[] buffer;
buffer.length = 4 * 1024;
ubyte digest[16];
if ((file = fopen(std.string.toStringz(filename), "rb")) == null)
{
writefln("%s can't be opened", filename);
}
else
{
context.start();
while ((len = fread(cast(void*) buffer, 1, buffer.sizeof, file)) != 0)
context.update(buffer[0 .. len]);
context.finish(digest);
fclose(file);
writefln("MD5 File (%s) = %s", filename, digestToString(digest));
}
}
/* Digest a string and prints the result. */
void MDString(char[] str)
{
MD5_CTX context;
ubyte digest[16];
if (str.length)
{
context.start();
context.update(str);
context.finish(digest);
if (str.length > 10)
writefln("MD5 String (%s..) = %s", str[0..10], digestToString(digest));
else
writefln("MD5 String (%s) = %s", str, digestToString(digest));
}
}
分享到:
相关推荐
在课程设计中,使用C语言实现MD5加密解密程序,学生可以深入理解哈希函数的工作原理,学习如何处理二进制数据,以及掌握基本的编程技巧。通过实际编写和调试代码,可以提升对算法的理解和编程能力。 文件名为"md5...
ASP(Active Server Pages)是一种微软开发的...学习和理解这些基本的ASP函数和MD5的使用对于初学者来说至关重要,它们是构建动态网站的基础。通过实践和掌握这些知识,开发者能够创建出功能丰富的交互式Web应用。
MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,由Ronald Rivest在1991年设计。MD5能够将任意长度的数据转化为固定长度的128位(16字节)摘要,这个摘要被称为MD5哈希值。由于其高效性和相对快速的...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的数字摘要,这个摘要能够代表任意大小的数据。在Linux环境下,C语言是编写底层程序的常见选择,因此理解如何在C语言中实现MD...
总结来说,C++生成MD5控制台程序涉及理解MD5的哈希功能、选择合适的库(如OpenSSL)、正确地链接库并在C++代码中调用MD5函数。这个过程不仅有助于学习C++编程,还能深入理解数据校验和安全性的概念。
总结来说,"MD5演示源程序(重传)"是一份可以帮助我们理解和应用MD5算法的代码示例,通过学习它可以提升对哈希函数的理解,并掌握如何在实际项目中利用MD5进行数据校验和安全性检查。同时,源码中涉及的控件、计数...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的输出,通常是一个128位的二进制数,通常以32位的十六进制数表示。在信息安全领域,MD5常用于文件校验,因为...
在MD5监控中,这个函数会用于确定要监控的程序,并获取其文件路径以便进行后续的MD5计算。 "子程序_列表框加入项目"则是向程序界面的列表框控件中添加条目的函数。在MD5监控程序中,可能会用到这个功能来显示被监控...
在VC(Visual C++)环境下开发MD5程序,你需要使用C语言的基本语法,并可能需要使用预处理器宏和位运算来实现上述步骤。VC环境提供了丰富的库支持,如内存操作函数和类型转换,可以帮助简化代码。同时,为了使代码更...
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的128位...学习和理解这些源代码可以帮助开发者更好地理解和应用MD5算法,也可以为开发自己的校验工具提供基础。
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为电子数据提供一个简短的、固定长度的数字指纹,用于验证数据的完整性...同时,通过查看源代码,可以学习到如何在实际项目中集成MD5加密功能。
在学习和使用MD5加密小程序时,理解上述原理,熟悉VC6.0的开发环境,以及掌握如何将MD5算法应用于实际问题,都是提升编程技能的重要环节。同时,也应该关注并学习更先进的加密技术和最佳实践,以适应不断发展的信息...
VB(Visual Basic)是微软开发的一种面向对象的编程语言,常用于快速开发Windows应用程序。MD5(Message-Digest Algorithm 5)是一种广泛...通过学习和理解这个源程序,你可以更好地了解如何在VB中应用MD5加密技术。
MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的数据转换为固定长度的输出,通常是一个128位的数字,用32个十六进制字符表示。在Windows环境下,计算文件的MD5值是验证文件完整性和...
2. `md5main.cpp`: 这应该是程序的主入口文件,它调用`Md5Sum.cpp`中的函数,处理命令行参数,并进行MD5计算。 3. `Md5Sum.h`: 这是一个头文件,可能定义了`Md5Sum.cpp`中用到的类或函数接口。 4. `makefile`: 这是...
5. `md5_test_main.pas`:这可能是主程序的源代码,调用了`md5.pas`中的MD5函数,并可能有测试或演示代码。 6. `md5_test.res`:资源文件,包含了应用程序的图标、字符串等资源。 7. `使用说明.txt`:提供了如何使用...