|
[求助]基于时间的一次性认证标准TOTP中,密钥是怎么分发指定的?
已解决,HOTP的RFC资料里面有推荐方法 |
|
关于论坛购买邀请码的设置
回个贴看自己的kx |
|
[求助]怎么快速搜索一个大素数? (翻遍了论坛也没找到有关帖子)
先发帖,再学习^_^ 这个是GnuPG源代码片段,来自 cipher/primegen.c static MPI gen_prime( unsigned int nbits, int secret, int randomlevel ) { unsigned nlimbs; MPI prime, ptest, pminus1, val_2, val_3, result; int i; unsigned x, step; int count1, count2; int *mods; if( 0 && DBG_CIPHER ) log_debug("generate a prime of %u bits ", nbits ); if (nbits < 16) { log_error (_("can't generate a prime with less than %d bits\n"), 16); exit (2); } if( !no_of_small_prime_numbers ) { for(i=0; small_prime_numbers[i]; i++ ) no_of_small_prime_numbers++; } mods = xmalloc( no_of_small_prime_numbers * sizeof *mods ); /* Make nbits fit into MPI implementation. */ nlimbs = mpi_nlimb_hint_from_nbits (nbits); val_2 = mpi_alloc_set_ui( 2 ); val_3 = mpi_alloc_set_ui( 3); prime = secret? mpi_alloc_secure( nlimbs ): mpi_alloc( nlimbs ); result = mpi_alloc_like( prime ); pminus1= mpi_alloc_like( prime ); ptest = mpi_alloc_like( prime ); count1 = count2 = 0; for(;;) { /* try forvever */ int dotcount=0; /* generate a random number */ { char *p = get_random_bits( nbits, randomlevel, secret ); mpi_set_buffer( prime, p, (nbits+7)/8, 0 ); xfree(p); } /* Set high order bit to 1, set low order bit to 0. If we are generating a secret prime we are most probably doing that for RSA, to make sure that the modulus does have the requested keysize we set the 2 high order bits */ mpi_set_highbit( prime, nbits-1 ); if (secret) mpi_set_bit (prime, nbits-2); mpi_set_bit( prime, 0 ); /* calculate all remainders */ for(i=0; (x = small_prime_numbers[i]); i++ ) mods[i] = mpi_fdiv_r_ui(NULL, prime, x); /* now try some primes starting with prime */ for(step=0; step < 20000; step += 2 ) { /* check against all the small primes we have in mods */ count1++; for(i=0; (x = small_prime_numbers[i]); i++ ) { while( mods[i] + step >= x ) mods[i] -= x; if( !(mods[i] + step) ) break; } if( x ) continue; /* found a multiple of an already known prime */ mpi_add_ui( ptest, prime, step ); /* do a faster Fermat test */ count2++; mpi_sub_ui( pminus1, ptest, 1); mpi_powm( result, val_2, pminus1, ptest ); if( !mpi_cmp_ui( result, 1 ) ) { /* not composite */ /* perform stronger tests */ if( is_prime(ptest, 5, &count2 ) ) { if( !mpi_test_bit( ptest, nbits-1 ) ) { progress('\n'); log_debug("overflow in prime generation\n"); break; /* step loop, continue with a new prime */ } mpi_free(val_2); mpi_free(val_3); mpi_free(result); mpi_free(pminus1); mpi_free(prime); xfree(mods); return ptest; } } if( ++dotcount == 10 ) { progress('.'); dotcount = 0; } } progress(':'); /* restart with a new random value */ } } |
|
[求助]一道数学题....
该图片仅限百度用户交流使用 |
|
|
|
断点怎么找呢?
说在前面:我也是新手一条,不太了解MFC,不了解驱动、壳等技术,只是说一下自己的一点点经验。 1. 关键API 比如如待破解软件有文件操作,可查找模块间调用,在WriteFile下断点 2. 错误提示MessageBox的正文 数据段查找错误提示。就是Ctrl+B查找对话框的内容,然后查找引用,一般能找到相关的MessageBox函数(具体找到的应该是函数参数的压栈代码),然后向上找出错原因。这种方式比较原始。 3. 中断后反查堆栈调用链 经常看到比如 application -> user32.dll -> kernel32.dll -> ..... 比如弹出一些提示什么的,中断,沿着调用链找到application,就算是找对地方了。 暂时就想到这几点吧 |
|
|
|
[求助]大侠帮忙呀,这是什么算法呀?
LZ能否简要说明一下样本数据来源? |
|
[求助]大侠帮忙呀,这是什么算法呀?
第三段类似“CAAAAAVtQ2Mx7Ruf”的串可能是加密密钥的Base64编码形式。 第一个样本第三段Base64解码后是 08 00 00 00 05 6D 43 63 31 ED 1B 9F 08 00 00 00 猜测是int32型的长度头信息,后面8个字节是密钥 第一个样本的密文Base64解码后是 11 00 00 00 2B F3 EF 4B 44 E1 80 86 E3 B3 05 0C 3D F8 FA D8 55 37 54 A1 73 F9 08 EB 同样怀疑前4字节 11 00 00 00 是长度(17),但是去除后还剩下24字节,多出来的7字节就不知道是什么了…… (补充,刚才查了一下,Oracle的DATE和TIMESTAMP时间数据都可以是7个字节表示的,其他数据库不清楚, 所以这里多出来的7个字节会不会是时间信息呢?) (当然了,可能猜想就是错的) |
|
[调查]关于看雪密码杂志栏目调查
目前状态:坛里面搞理论研究的人很多。不是说理论研究不好,但有那个数学基础和密码学能力搞理论研究的毕竟是少数。 另一方面,对密码应用的讨论,个人感觉相对少了些。比如什么场合使用什么算法等等(这个话题可以扩展很广,比如如何有效实现口令牌发放、回收和验证机制,什么样的软件——通讯方面、网游,甚至推广到Word、RAR之类等等——适合什么样的算法,文件加密储存和加密传输过程中的加密方案等等)是不是应该鼓励一下讨论这方面的问题呢? |
|
[求助]大侠帮忙呀,这是什么算法呀?
不是“通过类似于 base64的编码方式加密”,而是先加密,然后Base64转换为可打印字符 |
|
[讨论]关于并行大数加法的,遇到困境了...
一个字节一个字节的加,一个CPU只有一个ALU,怎么可能是并行的呢? |
|
[求助]谁帮我解释下PEiD检测出的信息
入口点:00714154 这是什么意思? PE文件加载完成后,转到此处开始执行程序。或者说PE最早执行的一个函数。 如果LZ用过C语言写程序,入口点可以大概理解成main函数的首地址。 (当然这样理解是很片面的,C语言写的程序在跑main函数之前有许多初始化工作) EP段:.vmp2 这是什么意思? 一个PE文件有很多个段,比如.text段是代码段,.data是数据段,.rdata是只读数据段,.rsrc是资源数据段等等。这些在网上能找到。 不同的区段被加载到进程内存的不同位置,起的作用也不同 文件偏移:0038AF54 这是什么意思? 首字节:E9,B8,E8,00 这是什么意思? 连接器版本"9.0 这是什么意思? 子系统:Win32 GUI 这是什么意思? GUI子系统就是Graphic User Interface,图形用户界面。常见的还有控制台系统,忘了怎么命名,应该是CLI吧,Command Line Interface 下面的小横框显示:什么也没找到 * 这是什么意思? 这个大概就是说PeID不知道这个PE文件是什么编译器写的,也不知道加了什么壳 |
|
[求助][求助]求破解几个加密文本
果然只是把字节拆分了,没有加密…… 另外LZ说是8->6的压缩,实际上是扩展。 前两个文件的内容是不是附件那样? 另外附上程序,没什么难的,写的比较乱,就是字节的重组。跳过前16字节的方法也很笨拙…… 用的时候要把两个文件的宏定义改成自己需要解码的文件名和路径。 但是解码90多K的那个文件时好像没有处理好截断尾部的多余填充位…… |
|
[求助][求助]求破解几个加密文本
这个“基本加密思路”通过分析字节分布也能看出来。除了开头16个字节可能是头信息,后面的字符编码从0x00到0x3F,符合LZ所说的“基本加密思路”的。 是自己的算法吗?还是用的什么软件加密?可以把软件发出来…… |
|
[求助][求助]请大家看看这段密文,估计是什么加密方式?
有可能是UUEncode编码…… 另外,字符Ascii界限是从0x21到0x60 可以根据这个找一下相关特性的算法…… UUEncode正好符合这个特性,但是UUEncode貌似需要头信息……没研究过…… |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值