首页
社区
课程
招聘
使用
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2017-5-3 09:38
0
[五万奖金]看雪CTF2017攻防大赛!
我想要书。支持活动。
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2016-12-1 15:35
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2015-1-17 12:59
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2014-12-10 09:32
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-12-24 15:16
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-7-28 10:28
0
VC6编译器的BUG?
有人编译过上面的代码吗? 分析过汇编代码吗?
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-7-16 10:43
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-2-1 20:24
0
[讨论]年轻人压力大
楼上的 你忘了算年终奖了
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2012-1-16 20:42
0
[求助]此算法是否存在逆算法
楼主把 lpDataTable 和  “软件中的一个数据表( N 个 dd 大小的表)” 传上来看看?
另外,软件对RegCode是否有什么限制,如长度限制?

或者楼主直接把软件放上来吧
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2011-7-30 19:17
0
[原创][求助]请教一个数学问题
客户注册:
客户输入用户名(UserName)和密码(PassWord),点击“注册”,客户端发送用户名(UserName)和密码的散列值(hash(PassWord))到服务器;
(为了保证数据的保密性,服务器需要有X.509证书。客户端把密码的散列值用服务器的公钥加密后再发送给服务器)
服务器保存用户名和密码的散列值到数据库中。

客户登录:
客户端发送用户名;
服务器收到用户名,发送一个随机数(RandNum),并保存这个随机数;
客户输入密码,客户端以密码的散列值作为密钥,使用对称加密算法加密接收到的随机数(RandNum),把加密结果EncData发送给服务器;
服务器使用数据库中保存的密码散列值作为密钥,解密EncData,如果解密结果等于先前发送的随机数,则认证成功。
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2011-5-11 12:59
0
[原创]Exploit Me 第四题的分析
回楼上的:
     你看看1.txt最后4个字节,我怀疑你写反了字节序:从低到高应该是 40 52 39 00.
PS: 不要灌水啊,连续回复两次同样的内容。。。。。。
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-12-24 08:40
0
[求助]RSA加密算法
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

typedef struct RSA_PARAM_Tag
{
  unsigned __int64 p,q;
  unsigned __int64 f;
  unsigned __int64 n,e;
  unsigned __int64 d;
  unsigned __int64 s;
} RSA_PARAM;

const static long g_PrimeTable[]=
{ 3,5,7,11,13,17,19,23,29,31,
  37,41,43,47,53,59,61,67,71,
  73,79,83,89,97
};

const static long g_PrimeCount=sizeof(g_PrimeTable)/sizeof(long);

class RandNumber
{
   private:
     unsigned __int64	m_randSeed;
     static unsigned __int64	s_multiplier;
     static unsigned __int64	s_adder;
   public:
     RandNumber(unsigned __int64 s = 0);
     unsigned __int64 Random(unsigned __int64 n);

};
unsigned __int64 RandNumber::s_multiplier = 12747293821;
unsigned __int64 RandNumber::s_adder = 1343545677842234541;

RandNumber::RandNumber(unsigned __int64 s)
{
  if(!s)
  {
    m_randSeed = (unsigned __int64)time(NULL);
  }
  else
  {
    m_randSeed = s;
  }
}

unsigned __int64 RandNumber::Random(unsigned __int64 n)
{
  m_randSeed = s_multiplier * m_randSeed + s_adder;
  return m_randSeed % n;
}

RandNumber g_Rnd;




unsigned __int64 MulMod(unsigned __int64 a,unsigned __int64 b,unsigned __int64 n)
{
   return (a*b)%n;
}

unsigned __int64 PowMod(unsigned __int64 &base,unsigned __int64 &pow,unsigned __int64 &n)
{
      unsigned __int64 a=base,b=pow,c=1;
      while(b)
     {
            while(!(b&1))
            {
	 b>>=1;
	 a=MulMod(a,a,n);
            } 
            b--;
            c=MulMod(a,c,n);
      }
      return c;
}

long MillerRabinKnl(unsigned __int64 &n)
{
    unsigned __int64 b,m,j,v,i;
    m=n-1;
    j=0;
    while(!(m&1))
    {
	++j;
	m>>=1;
    }
    b=2+g_Rnd.Random(n-3);
    v=PowMod(b,m,n);
    if(v==1)
    {
	return 1;
    }
    i=1;
    while(v!=n-1)
    {
        if(i==j)
        {
            return 0;
         }
        v=(v*v)%n;
        ++i;
    }
    return 1;
}


long MillerRabin(unsigned __int64 &n,long loop)
{
    long i;
    for (i=0;i<g_PrimeCount;i++)
    {
	if(n%g_PrimeTable[i]==0)
	{
	    return 0;
	}
    }
    for(i=0;i<loop;i++)
    {
           if(!MillerRabinKnl(n))
           {
	return 0;
           }
    }
    return 1;
}


unsigned __int64 RandomPrime(char bits)
{
  unsigned __int64 base;

  do
  {
	  base=(unsigned long)1<<(bits-1);
	  base+=g_Rnd.Random(base);
	  base|=1;
  }while(!MillerRabin(base,30));
  return base;
}

unsigned __int64 EuclidGcd(unsigned __int64 &p,unsigned __int64 &q)
{	
	unsigned __int64 a=p>q?p:q;
	unsigned __int64 b=p<q?p:q;
	unsigned __int64 t;
	if(p==q)
	{
		return p;
	}
	while(b)
	{
		a=a%b;
		t=a;
		a=b;
		b=t;
	}
	return a;	
}


unsigned __int64 SteinGcd(unsigned __int64 &p,unsigned __int64 &q)
{
	unsigned __int64 a=p>q?p:q;
	unsigned __int64 b=p<q?p:q;
	unsigned __int64 t,r=1;
	if(p==q)
	{
		return p;
	}
	while((!(a&1))&&(!(b&1)))
	{
		r<<=1;
		a>>=1;
		b>>=1;
	}
	if(!(a&1))
    {
		t=a;
		a=b;
		b=t;
    }
    do
    {
		while(!(b&1))
		{
			b>>=1;
		}
		if(b<a)	
		{
			t=a;
			a=b;
			b=t;
		}
		b=(b-a)>>1;
    }while(b);
    return r*a;
}

unsigned __int64 ModReverse(unsigned __int64 &a,unsigned __int64 &b)
{
	unsigned __int64 m,e,i,j,x,y;
	long xx,yy;
	m=b;
	e=a;
	x=0;
	y=1;
	xx=1;
	yy=1;
	while(e)
	{
		i=m/e;
		j=m%e;
		m=e;
		e=j;
		j=y;
		y*=i;
		if(xx==yy)
		{
			if(x>y)
			{
				y=x-y;
			}
			else 
			{
				y-=x;
				yy=0;
			}
		}
		else 
		{
			y+=x;
			xx=1-xx;
			yy=1-yy;
		}
		x=j;
	}
	if(xx==0)
	{
		x=b-x;
	}
	return x;
}



RSA_PARAM RsaGetParam(void)
{
  RSA_PARAM Rsa={0};
  unsigned __int64 t;
  Rsa.p=RandomPrime(16);
  Rsa.q=RandomPrime(16);
  Rsa.n=Rsa.p*Rsa.q;
  Rsa.f=(Rsa.p-1)*(Rsa.q-1);
  do 
  {
    Rsa.e=g_Rnd.Random(65536);
    Rsa.e|=1;
  }while(SteinGcd(Rsa.e,Rsa.f)!=1);
  Rsa.d=ModReverse(Rsa.e, Rsa.f);
  Rsa.s=0;
  t=Rsa.n>>1;
  while(t)
  {
    Rsa.s++;
    t>>=1;
  }
  return Rsa;
}



void TestRSA(void)
{
	RSA_PARAM r;
	char pSrc[]= {"abcdefghijklmnopqrstuvwxyz"};
	const unsigned long n=sizeof(pSrc);
	unsigned char *q;
	unsigned __int64 pEnc[n],pDec[n];
	unsigned long i;

	r=RsaGetParam();
	printf("p = %I64u\n", r.p);
	printf("q = %I64u\n", r.q);
	printf("f=(p-1)*(q-1)= %I64u\n", r.f);
	printf("n=p*q= %I64u\n", r.n);
	printf("e = %I64u\n", r.e);
	printf("d = %I64u\n", r.d);
	printf("s = %I64u\n", r.s);
	printf("Source: %s\n", pSrc);
	q=(unsigned char *)pSrc;
	printf("Encode:");
	for(i=0;i<n;i++)
	{
		unsigned __int64 base;
		base = (unsigned __int64)q[i];
		pEnc[i]=PowMod(base, r.e, r.n);
	}
	printf("\n");
	printf("Decode: ");
	for(i=0;i<n;i++)
	{
		pDec[i]=PowMod(pEnc[i], r.d, r.n);
		printf("%c", pDec[i]);
	}
	printf("\n");
}

int main(void)
{
  TestRSA();
  return 0;
}

雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-12-20 17:19
0
关于如何在RING3层防止截取键盘输入
恩。总结一下:2种方法。
一:安装debug钩子,对其他类型的钩子进行拦截或者过滤
二:模拟输入,发送假消息欺骗钩子函数。
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-12-7 17:20
0
[求助]求一段C/C++稳定的RSA加密算法源代码
用 miracl 吧。效率不错。说明文档也有。
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-11-8 08:29
0
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-10-28 09:13
0
[原创]《0day安全:软件漏洞分析技术(第二版)》目录公示
看了目录,觉得不错。内容丰富,技术前沿。
正因为内容丰富,所以如果书设计得跟第一版一样大,书必然会显得太厚,翻看起来不太方便。建议设计得跟《加密与解密 第三版》那么大
PS:离楼主这么远,不知道楼主看不看得到~~~~
雪    币: 440
活跃值: (87)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
asdfslw 3 2010-10-23 19:01
0
[讨论]用汇编开发看雪自己的Crypto算法库如何?
同意楼主的建议。
看雪密码学小组也成立一段时间了,可以说什么也没有做。

大家一起努力,合作开发一个看雪自己的密码学库。

我的建议是:大家可能都有各自的工作,业余时间也不多。大家可以一人负责一个模块,制定统一的接口。最后再合在一起讨论修改。
另外,我的想法是开源,注重效率,使用C语言和嵌入汇编,可以参考各种开源的密码学库。

不知道大家是个什么意见?
精华数
RANk
440
雪币
87
活跃值
关注数
粉丝数
0
课程经验
0
学习收益
0
学习时长
基本信息
  能力排名: No.604
  等    级: LV9
活跃值  活跃值:活跃值
  在线值:
  浏览人数:221
  最近活跃:2024-5-13 09:05
  注册时间:2008-09-01
勋章
能力值

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册