摘要: 在软件开发的用户注册功能中常出现MD5加密这个概念,这个概念有一定的误导性。严格来说:MD5还有sha-1、 RIPEMD以及Haval等不能算是加密算法(虽然常用于把密码变成“密文”),他们只是散列算法,或者叫摘要算法。加密对应解密这个概念,加密算法包括:DES、3DES、IDEA、 RSA、AES等。 要弄懂这两类算法的区别,最本质的方式就是把这两类算法的步骤搞懂,但这需要大量的时间。通过两类算法的表现可以对他们的区别有个大体的了解: 1.MD5算法除了注册时对用户密码进行MD5运算以外,还常用于验证下载的软件的完整性(linux下面md5sum命令可以支持这一典型应用),常用电驴等下载. 阅读全文
posted @ 2013-03-21 17:01 eternalwt 阅读(1325) 评论(0) 推荐(2) 编辑
摘要: 昨天看了收藏的陈皓童鞋的《Huffman 编码压缩算法》,想想自己以前学的时候没有亲手实现过,于是又参照了维基百科上面的Huffman编码文章实现了一下,比维基上面实现的要详细。 主函数的运行流程包含了从读文件到统计频率到产生每个字符编码到编码到解码的全过程。程序运行后,依次在控制台打印每个字符的编码、编码后的全文(由input.txt文件读入)、解密后的原文。 除Huffman算法本身以外,本篇文章的代码涉及到C++里面的流与IO、STL里的容器和算法、树结构和递归回溯,这样看来也算是一个不错的综合性小程序。代码如下:#include<iostream>#include<f 阅读全文
posted @ 2013-03-15 20:47 eternalwt 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 开发环境是codeblocks+glut,其中glut库的作用是封装windows程序的消息循环等标准windows程序结构,屏蔽与openGL开发无关的复杂性(在后面的代码可以看到,在程序模版里面放置一些固定的封装好的函数调用就可以了),使用户专注于openGL本身。这个开发环境既轻量又容易配置,只要配置好环境,openGL还是很容易上手的。具体的配置可参考:http://www.cnblogs.com/lycheng/archive/2011/09/10/2173419.html下面分别使用GL_LINE_LOOP和GL_LINES两种模式绘制五角星。效果图如下:在本文开头环境下的完整代码 阅读全文
posted @ 2013-02-27 11:45 eternalwt 阅读(3174) 评论(0) 推荐(0) 编辑
摘要: 1.Haskell风格的main = putStr (s ++ show s);s=" main = putStr (s ++ show s);s="--我在想假如把s串放在最前面该怎么写。2.C风格的,利用printf函数import Text.Printfs="import Text.Printf%cs=%c%s%c;main = printf s (13::Int) (34::Int) s (34::Int)";main = printf s (13::Int) (34::Int) s (34::Int) 阅读全文
posted @ 2012-06-19 14:49 eternalwt 阅读(156) 评论(0) 推荐(0) 编辑
摘要: --打印直角三角形。import Control.Monadmain n = mapM_ print (map (\x -> replicate x '*') [1..n])--打印等腰三角形,第n行有2n-1个*号。import Control.Monadmain n = mapM_ print (map (\x -> (replicate (n-x) ' ')++(replicate (2*x-1) '*')++(replicate (n-x) ' ')) [1..n]) 阅读全文
posted @ 2012-06-11 17:38 eternalwt 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 先写了一个C#版的,下个月写个haskell版的。using System; class Quine{ static void Main() { string s = "using System;{4}class Quine{4}{2}{4}{5}static void Main(){4}{5}{2}{4}{5}{5}string s = {1}{0}{1};{4}{5}{5}Console.Write(string.Format(s,s,(char)34,(char)123,(char)125,(char)10,(char)9));{4}{5}{5}Conso... 阅读全文
posted @ 2012-04-03 14:36 eternalwt 阅读(243) 评论(0) 推荐(0) 编辑
摘要: 算法的介绍在:http://www.vckbase.com/document/viewdoc/?id=1422英文地址:http://www.gamedev.net/page/resources/_/technical/artificial-intelligence/a-pathfinding-for-beginners-r2003本文的代码是完全按照上面的介绍文章写的,包括使用的数据也是文中6*8的矩阵。这只是一个最简单的实现,当数据规模变大后,“开启列表”的策略需要相应调整。除此外感觉算法的模块化和封装写的不好,请路过的读者指教。#include<iostream>#inclu 阅读全文
posted @ 2011-12-29 22:53 eternalwt 阅读(2721) 评论(0) 推荐(0) 编辑