设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 14123|回复: 41
打印 上一主题 下一主题

[胡扯] 蛋疼数学程序帝!散列算法

 关闭 [复制链接]

Lv2.观梦者

神隐的主犯

梦石
0
星屑
263
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

1
发表于 2010-8-27 11:21:12 | 显示全部楼层
就是说给定一组 (x, y) ,在 x y 都相等的情况下,值才相等,对么??

点评

对,“当且仅当”()的关系  发表于 2010-8-27 13:03

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
263
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

2
发表于 2010-8-27 11:41:52 | 显示全部楼层
本帖最后由 月兔铃仙 于 2010-8-27 11:55 编辑
  1. #include "md5.h"
  2. #include <iostream>

  3. using namespace std;

  4. void PrintMD5(const char* &str, MD5& md5) {
  5.   cout << "MD5(\"" << str << "\") = " << md5.toString() << endl;
  6. }

  7. int main(int argc, char* argv[]) {

  8.         MD5 md5;
  9.         md5.update("12");
  10.         PrintMD5("", md5);

  11.         md5.update("21");
  12.         PrintMD5("21", md5);

  13.         return 0;
  14.        
  15. }
复制代码
按照 MD5 的定义应该可以,只是可能结果的长度太长了点~~~

-------------------------

Wndows 下无编译器,测试不能,Linux 下不会输出,悲剧~~~~

点评

这是作弊OTL,那还有SHA-1呢口胡!!  发表于 2010-8-28 12:21
MD5 是可以的,但是也自己想一个算法嘛~  发表于 2010-8-27 13:15

评分

参与人数 1星屑 +120 收起 理由
紫苏 + 120

查看全部评分


《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

Lv2.观梦者

神隐的主犯

梦石
0
星屑
263
在线时间
271 小时
注册时间
2008-2-22
帖子
7691

贵宾

3
发表于 2010-8-27 16:49:38 | 显示全部楼层
  1. module ReisenRSA
  2.   class Reisen_RSA
  3.     def initialize(p, q)
  4.       @p = p
  5.       @q = q
  6.       get_data
  7.     end
  8.    
  9.     def get_data
  10.       @n = @p * @q
  11.       @t =(@p - 1) * (@q - 1)
  12.     end
  13.    
  14.     def get_d(e)
  15.       (1..99999).each do |i|
  16.         return i if i * e % @t == 1
  17.       end
  18.     end
  19.    
  20.     def pack(e, number)
  21.       @d = get_d(e)
  22.       @e = e
  23.       return number ** @d % @n
  24.     end
  25.    
  26.     def unpack(e, number)
  27.       if @e != e
  28.          @d = get_d(e)
  29.          @e = e
  30.        end
  31.       return number ** e % @n
  32.     end
  33.    
  34.   end
  35. end
复制代码
好吧,整数简单的 RSA 算法. 要求苛刻. 需要 q p 是质数,  e 要小于 t =(p- 1) * (q - 1). 先判断正负,取绝对值来计算.

点评

呵呵,还需要 e 不和 t 互质~不过这里我们需要的是两个域的散列码,你如何用 RSA 来生成呢(组合两个整数域 x、y 为一个 number 然后用 RSA 加密?)  发表于 2010-8-27 23:39

《天空之城 —— 破碎的命运》
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-5-6 12:59

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表