首页
社区
课程
招聘
内存写速度低于内存读的速度?
发表于: 2017-2-25 12:32 3797

内存写速度低于内存读的速度?

2017-2-25 12:32
3797

最近在研究北信源U盘,用穷举法测试密码,在网上找了段穷举密码算法,发现内存读的速度约快于内存写的速度1倍以上,制约穷举速度主要是内存写的速度,是否是内存写速度低于内存读的速度?

网上抄的穷举算法代码

//******************************************************************* 
//在许多情况下我们需要穷举组合的算法,比如密码词典。 
//这个算法的要害是密码下标进位的问题。 
//另外本例子中的写文件语句效率比较低,为了降低算法复杂度没有优化。 
//假如要提高写文件的效率,可以使用缓冲区,分批写入。 
//*********************************************breath.cnpick.com***** void createpassWord() 

#define passwordmax 8//将生成密码的最大长度 char a[]="0123456789abcdefghijklmnopqrstuvwxyz";//可能的字符 
long ndictcount=sizeof(a);//获得密码词典长度 
char cpass[passwordmax+2];//将生成的密码 
long nminl=1,nmaxl=3;//本例中密码长度从1-3 
long array[passwordmax];//密码词典下标 assert(nminl<=nmaxl && nmaxl<=passwordmax);//容错保证 
long nlength=nminl; 
register long j,i=0; 
bool bnext; 
cstdiofile file; 
file.open("c:\\dict.txt",cfile::modecreatecfile::modewrite); 
while(nlength<=nmaxl) 

for(i=0;i<passwordmax;i++) 
array[i]=0; 
bnext=true; 
while(bnext) 

for(i=0;i<nlength;i++) 
cpass[i]=a[array[i>; 
cpass[i]='\0'; 
file.writestring(cpass); 
file.writestring("\n"); 
for(j=nlength-1;j>=0;j--)//密码指针进位 

array[j]++; 
if(array[j]!=ndictcount-1)break; 
else 

array[j]=0; 
if(j==0)bnext=false; 

} } 
nlength++; 

file.close(); 


测试情况

for(i=0;i<nlength;i++)

{

tttemp =CreackPwd[array[i]];//读内存

cpass[i] =tttemp;//写内存

}

分别注释循环中的两行,速度分别为1.2亿个密码/秒和0.4亿个密码/秒,内存写的速度低于读的速度。

哪位有好的穷举算法能提供个不。



[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 18
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2

ram本质就是电容器,给电容充放电+校验的时间肯定比直接读取通断信号来得慢啊,参考资料如下 87aK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3c8F1i4K6u0W2L8X3g2@1i4K6u0r3L8h3W2K6M7$3E0A6M7%4y4U0i4K6u0r3j5i4u0@1K9h3y4D9k6g2)9J5c8X3c8W2N6r3q4A6L8s2y4Q4x3V1j5@1x3o6V1H3x3o6R3&6x3H3`.`. 顺便一说,穷举算法这种东西适合并行化操作,可以考虑opencl或cuda利用显卡的多核优势和显存带宽优势来处理(显卡对于大数据读写有优化,数据总线的吞吐量比主机快)

2017-2-26 03:28
0
雪    币: 18
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
至于你说的写入文件速度慢这个问题,其实可以利用内存映射的方式来搞定(这样可以把单次写入数据大小、需要开辟的缓冲区大小等问题丢给操作系统以获得较高效率了)
2017-2-26 03:35
0
雪    币: 246
活跃值: (106)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
4
谢谢
2017-2-26 08:35
0
游客
登录 | 注册 方可回帖
返回