`
sofire
  • 浏览: 146176 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

md5函数的学习程序

阅读更多
前面部分是库文件里面的例子,后面是我改的。
写起来和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));
    }
}
  • md5.zip (686 Bytes)
  • 下载次数: 4
分享到:
评论

相关推荐

    MD5 算法 程序 加密解密程序代码

    在课程设计中,使用C语言实现MD5加密解密程序,学生可以深入理解哈希函数的工作原理,学习如何处理二进制数据,以及掌握基本的编程技巧。通过实际编写和调试代码,可以提升对算法的理解和编程能力。 文件名为"md5...

    常用ASP函数代码和MD5代码

    ASP(Active Server Pages)是一种微软开发的...学习和理解这些基本的ASP函数和MD5的使用对于初学者来说至关重要,它们是构建动态网站的基础。通过实践和掌握这些知识,开发者能够创建出功能丰富的交互式Web应用。

    密码学MD5及散列函数

    MD5(Message-Digest Algorithm 5)是一种广泛使用的散列函数,由Ronald Rivest在1991年设计。MD5能够将任意长度的数据转化为固定长度的128位(16字节)摘要,这个摘要被称为MD5哈希值。由于其高效性和相对快速的...

    linux c MD5加密 程序源代码 和 测试程序

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要用来生成一个固定长度的数字摘要,这个摘要能够代表任意大小的数据。在Linux环境下,C语言是编写底层程序的常见选择,因此理解如何在C语言中实现MD...

    C++ 生成MD5控制台程序

    总结来说,C++生成MD5控制台程序涉及理解MD5的哈希功能、选择合适的库(如OpenSSL)、正确地链接库并在C++代码中调用MD5函数。这个过程不仅有助于学习C++编程,还能深入理解数据校验和安全性的概念。

    MD5演示源程序(重传)

    总结来说,"MD5演示源程序(重传)"是一份可以帮助我们理解和应用MD5算法的代码示例,通过学习它可以提升对哈希函数的理解,并掌握如何在实际项目中利用MD5进行数据校验和安全性检查。同时,源码中涉及的控件、计数...

    修改人意程序的MD5值

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的输出,通常是一个128位的二进制数,通常以32位的十六进制数表示。在信息安全领域,MD5常用于文件校验,因为...

    易语言程序MD5监控

    在MD5监控中,这个函数会用于确定要监控的程序,并获取其文件路径以便进行后续的MD5计算。 "子程序_列表框加入项目"则是向程序界面的列表框控件中添加条目的函数。在MD5监控程序中,可能会用到这个功能来显示被监控...

    MD5算法程序

    在VC(Visual C++)环境下开发MD5程序,你需要使用C语言的基本语法,并可能需要使用预处理器宏和位运算来实现上述步骤。VC环境提供了丰富的库支持,如内存操作函数和类型转换,可以帮助简化代码。同时,为了使代码更...

    MD5自动校验算法程序源代码

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的数据转化为固定长度的128位...学习和理解这些源代码可以帮助开发者更好地理解和应用MD5算法,也可以为开发自己的校验工具提供基础。

    MD5Demo简单程序

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,主要目的是为电子数据提供一个简短的、固定长度的数字指纹,用于验证数据的完整性...同时,通过查看源代码,可以学习到如何在实际项目中集成MD5加密功能。

    MD5加密小程序(可正确输出)

    在学习和使用MD5加密小程序时,理解上述原理,熟悉VC6.0的开发环境,以及掌握如何将MD5算法应用于实际问题,都是提升编程技能的重要环节。同时,也应该关注并学习更先进的加密技术和最佳实践,以适应不断发展的信息...

    vb md5加密源程序

    VB(Visual Basic)是微软开发的一种面向对象的编程语言,常用于快速开发Windows应用程序。MD5(Message-Digest Algorithm 5)是一种广泛...通过学习和理解这个源程序,你可以更好地了解如何在VB中应用MD5加密技术。

    windows下计算md5小程序

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,可以将任意长度的数据转换为固定长度的输出,通常是一个128位的数字,用32个十六进制字符表示。在Windows环境下,计算文件的MD5值是验证文件完整性和...

    md5sum-code_md5sum_md5sum工具_

    2. `md5main.cpp`: 这应该是程序的主入口文件,它调用`Md5Sum.cpp`中的函数,处理命令行参数,并进行MD5计算。 3. `Md5Sum.h`: 这是一个头文件,可能定义了`Md5Sum.cpp`中用到的类或函数接口。 4. `makefile`: 这是...

    delphi md5加密算法,内附DEMO

    5. `md5_test_main.pas`:这可能是主程序的源代码,调用了`md5.pas`中的MD5函数,并可能有测试或演示代码。 6. `md5_test.res`:资源文件,包含了应用程序的图标、字符串等资源。 7. `使用说明.txt`:提供了如何使用...

Global site tag (gtag.js) - Google Analytics