文章关键字 ‘算法’

身份证校验码算法

2013年01月15日,星期二

下载了某个对战平台,注册账号的时候居然要填身份证号码,你以为你是警察啊?随便百度一个填上去,顺便看了一下身份证校验码的算法。

(更多…)

eXeScope注册码算法

2012年10月8日,星期一

eXeScope是小日本写的一款资源编辑软件,有的人用它来汉化软件,有的人用它来辅助破解。

(更多…)

用VBS实现Shuffle洗牌算法

2011年12月16日,星期五

昨天朋友想出一个把梭哈和象棋结合起来的玩法,游戏开始之前各自需要从象棋棋子中随机抽取五个,但是木制的棋子很容易通过纹理分辨出来,于是决定写个程序来实现随机抽取。

(更多…)

EditPlus注册机及其算法

2010年09月23日,星期四

一切源于正则表达式。EditPlus之支持部分正则表达式,我想找一个对正则表达式支持比较好的代码编辑器。不小心点了EditPlus的Check Latest Version菜单,发现最新版EditPlus是3.20,而我的是3.12。查看了一下更新的内容,很失望的发现没有和正则表达式有关的内容。没有就没有吧,我还是要更新的。

下载了最新版的安装文件,安装。打开EditPlus,提示需要注册码。以前都是随便Google一个填上去就完了,但是这样EditPlus中写的授权都是别人的ID,看着不爽。于是搜索了一下有没有注册机,别说,还真有。但是以前下过的有些注册机是带病毒的,在我的电脑还有杀毒软件的时候,有个注册机直接把卡巴斯基干掉了。更何况现在电脑处于裸奔状态,注册机的病毒想搞破坏那是再简单不过了。

Google关键词“EditPlus 注册机”的时候竟然还搜索出了与“EditPlus 注册机源码”有关的内容。有源码就好办了,自己按照源码写一个呗。后来才发现那个注册码算法是错的,只生成的注册码的前5位,浪费我时间。

再后来,我反汇编了一个EditPlus注册机,花了一天时间才从中找出了注册码的正确算法。唉,没办法,水平太低了。

用C语言实现凯撒密码算法

2010年06月7日,星期一

昨天完成了VBS的凯撒密码算法,然后发现Google出来的C语言的凯撒密码算法乱七八糟,很多都是复制粘贴的,还不注明转载地址,连最先的出处都找不到。唉,天下文章一大抄。很多时候,碰到问题Google出来的都是千篇一律的答案,千篇一律也就罢了,还都是没有用的,真受不了。什么?百度一下?百度一下更加什么都不知道!

原来以为C语言的很好写,想不到写了一个小时才写完(不要鄙视我,我承认我是菜鸟),太久没写程序,卡在指针上面了。以下是我写的凯撒密码的C语言算法。你要Java的?对不起,我是一个守旧的人,我不喜欢Java。但是原理都一样吧,不记得在哪里看过一个话,语言并不重要,重要的是算法,语言是会过时的,但是算法不会。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char *caesar(const char *str,int offset)
{
	char *start,*ret_str;
	start = ret_str = (char *) malloc(strlen(str) + 1);
	for(;*str!='\0';str++,ret_str++)
	{
		if(*str>='A' && *str<='Z')
			*ret_str = 'A' + (*str - 'A' + offset) % 26;
		else if(*str>='a' && *str<='z')
			*ret_str = 'a' + (*str - 'a' + offset) % 26;
		else
			*ret_str = *str;
	}
	*ret_str = '\0';
	return (char *) start;
}

int main(void)
{
	printf("%s\n","ABCDEFGHIJKLMNOPQRSTUVWXYZ");
	printf("%s\n",caesar("ABCDEFGHIJKLMNOPQRSTUVWXYZ",3));
	return 0;
}