CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  ASP

如何用ASP将用户密码加密后存到ACCESS数据库中?让别人无法看到实际的密码

楼主kersic(菜鸟也*红*红*火*火)2003-08-02 12:55:55 在 Web 开发 / ASP 提问

如果服务器有漏洞时,数据库(ACCESS)被人下载.管理密码等会被盗取.  
  如userName:lili  
      PWD:   12365等.  
  如何把PWD的内容加密,让人家无法知道?  
  TKS. 问题点数:20、回复次数:9Top

1 楼par(吾知道)回复于 2003-08-02 13:00:13 得分 5

MD5   对验Top

2 楼kersic(菜鸟也*红*红*火*火)回复于 2003-08-02 13:01:24 得分 0

可不可以讲简单一点.  
  我是菜鸟.  
  Top

3 楼jzywh(江大鱼)回复于 2003-08-02 13:03:31 得分 0

仿照动网论坛的加密方发Top

4 楼fengchu2(凤雏)回复于 2003-08-02 13:08:57 得分 10

下面的代码直接拷贝就能使用!这是绝对不可解密的md5算法  
   
  <html>  
   
  <head>  
  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">  
  <meta   name="GENERATOR"   content="Microsoft   FrontPage   4.0">  
  <meta   name="ProgId"   content="FrontPage.Editor.Document">  
  <title>数据加密</title>  
  <script   language="javascript">  
   
  function   MD5(sMessage)   {  
  function   RotateLeft(lValue,   iShiftBits)   {   return   (lValue<<iShiftBits)   |   (lValue>>>(32-iShiftBits));   }  
  function   AddUnsigned(lX,lY)   {  
  var   lX4,lY4,lX8,lY8,lResult;  
  lX8   =   (lX   &   0x80000000);  
  lY8   =   (lY   &   0x80000000);  
  lX4   =   (lX   &   0x40000000);  
  lY4   =   (lY   &   0x40000000);  
  lResult   =   (lX   &   0x3FFFFFFF)+(lY   &   0x3FFFFFFF);  
  if   (lX4   &   lY4)   return   (lResult   ^   0x80000000   ^   lX8   ^   lY8);  
  if   (lX4   |   lY4)   {  
  if   (lResult   &   0x40000000)   return   (lResult   ^   0xC0000000   ^   lX8   ^   lY8);  
  else   return   (lResult   ^   0x40000000   ^   lX8   ^   lY8);  
  }   else   return   (lResult   ^   lX8   ^   lY8);  
  }  
  function   F(x,y,z)   {   return   (x   &   y)   |   ((~x)   &   z);   }  
  function   G(x,y,z)   {   return   (x   &   z)   |   (y   &   (~z));   }  
  function   H(x,y,z)   {   return   (x   ^   y   ^   z);   }  
  function   I(x,y,z)   {   return   (y   ^   (x   |   (~z)));   }  
  function   FF(a,b,c,d,x,s,ac)   {  
  a   =   AddUnsigned(a,   AddUnsigned(AddUnsigned(F(b,   c,   d),   x),   ac));  
  return   AddUnsigned(RotateLeft(a,   s),   b);  
  }  
  function   GG(a,b,c,d,x,s,ac)   {  
  a   =   AddUnsigned(a,   AddUnsigned(AddUnsigned(G(b,   c,   d),   x),   ac));  
  return   AddUnsigned(RotateLeft(a,   s),   b);  
  }  
  function   HH(a,b,c,d,x,s,ac)   {  
  a   =   AddUnsigned(a,   AddUnsigned(AddUnsigned(H(b,   c,   d),   x),   ac));  
  return   AddUnsigned(RotateLeft(a,   s),   b);  
  }  
  function   II(a,b,c,d,x,s,ac)   {  
  a   =   AddUnsigned(a,   AddUnsigned(AddUnsigned(I(b,   c,   d),   x),   ac));  
  return   AddUnsigned(RotateLeft(a,   s),   b);  
  }  
  function   ConvertToWordArray(sMessage)   {  
  var   lWordCount;  
  var   lMessageLength   =   sMessage.length;  
  var   lNumberOfWords_temp1=lMessageLength   +   8;  
  var   lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1   %   64))/64;  
  var   lNumberOfWords   =   (lNumberOfWords_temp2+1)*16;  
  var   lWordArray=Array(lNumberOfWords-1);  
  var   lBytePosition   =   0;  
  var   lByteCount   =   0;  
  while   (   lByteCount   <   lMessageLength   )   {  
  lWordCount   =   (lByteCount-(lByteCount   %   4))/4;  
  lBytePosition   =   (lByteCount   %   4)*8;  
  lWordArray[lWordCount]   =   (lWordArray[lWordCount]   |   (sMessage.charCodeAt(lByteCount)<<lBytePosition));  
  lByteCount++;  
  }  
  lWordCount   =   (lByteCount-(lByteCount   %   4))/4;  
  lBytePosition   =   (lByteCount   %   4)*8;  
  lWordArray[lWordCount]   =   lWordArray[lWordCount]   |   (0x80<<lBytePosition);  
  lWordArray[lNumberOfWords-2]   =   lMessageLength<<3;  
  lWordArray[lNumberOfWords-1]   =   lMessageLength>>>29;  
  return   lWordArray;  
  }  
  function   WordToHex(lValue)   {  
  var   WordToHexValue="",WordToHexValue_temp="",lByte,lCount;  
  for   (lCount   =   0;lCount<=3;lCount++)   {  
  lByte   =   (lValue>>>(lCount*8))   &   255;  
  WordToHexValue_temp   =   "0"   +   lByte.toString(16);  
  WordToHexValue   =   WordToHexValue   +   WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);  
  }  
  return   WordToHexValue;  
  }  
  var   x=Array();  
  var   k,AA,BB,CC,DD,a,b,c,d  
  var   S11=7,   S12=12,   S13=17,   S14=22;  
  var   S21=5,   S22=9   ,   S23=14,   S24=20;  
  var   S31=4,   S32=11,   S33=16,   S34=23;  
  var   S41=6,   S42=10,   S43=15,   S44=21;  
  //   Steps   1   and   2.   Append   padding   bits   and   length   and   convert   to   words  
  x   =   ConvertToWordArray(sMessage);  
  //   Step   3.   Initialise  
  a   =   0x67452301;   b   =   0xEFCDAB89;   c   =   0x98BADCFE;   d   =   0x10325476;  
  //   Step   4.   Process   the   message   in   16-word   blocks  
  for   (k=0;k<x.length;k+=16)   {  
  AA=a;   BB=b;   CC=c;   DD=d;  
  a=FF(a,b,c,d,x[k+0],   S11,0xD76AA478);  
  d=FF(d,a,b,c,x[k+1],   S12,0xE8C7B756);  
  c=FF(c,d,a,b,x[k+2],   S13,0x242070DB);  
  b=FF(b,c,d,a,x[k+3],   S14,0xC1BDCEEE);  
  a=FF(a,b,c,d,x[k+4],   S11,0xF57C0FAF);  
  d=FF(d,a,b,c,x[k+5],   S12,0x4787C62A);  
  c=FF(c,d,a,b,x[k+6],   S13,0xA8304613);  
  b=FF(b,c,d,a,x[k+7],   S14,0xFD469501);  
  a=FF(a,b,c,d,x[k+8],   S11,0x698098D8);  
  d=FF(d,a,b,c,x[k+9],   S12,0x8B44F7AF);  
  c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);  
  b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);  
  a=FF(a,b,c,d,x[k+12],S11,0x6B901122);  
  d=FF(d,a,b,c,x[k+13],S12,0xFD987193);  
  c=FF(c,d,a,b,x[k+14],S13,0xA679438E);  
  b=FF(b,c,d,a,x[k+15],S14,0x49B40821);  
  a=GG(a,b,c,d,x[k+1],   S21,0xF61E2562);  
  d=GG(d,a,b,c,x[k+6],   S22,0xC040B340);  
  c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);  
  b=GG(b,c,d,a,x[k+0],   S24,0xE9B6C7AA);  
  a=GG(a,b,c,d,x[k+5],   S21,0xD62F105D);  
  d=GG(d,a,b,c,x[k+10],S22,0x2441453);  
  c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);  
  b=GG(b,c,d,a,x[k+4],   S24,0xE7D3FBC8);  
  a=GG(a,b,c,d,x[k+9],   S21,0x21E1CDE6);  
  d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);  
  c=GG(c,d,a,b,x[k+3],   S23,0xF4D50D87);  
  b=GG(b,c,d,a,x[k+8],   S24,0x455A14ED);  
  a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);  
  d=GG(d,a,b,c,x[k+2],   S22,0xFCEFA3F8);  
  c=GG(c,d,a,b,x[k+7],   S23,0x676F02D9);  
  b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);  
  a=HH(a,b,c,d,x[k+5],   S31,0xFFFA3942);  
  d=HH(d,a,b,c,x[k+8],   S32,0x8771F681);  
  c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);  
  b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);  
  a=HH(a,b,c,d,x[k+1],   S31,0xA4BEEA44);  
  d=HH(d,a,b,c,x[k+4],   S32,0x4BDECFA9);  
  c=HH(c,d,a,b,x[k+7],   S33,0xF6BB4B60);  
  b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);  
  a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);  
  d=HH(d,a,b,c,x[k+0],   S32,0xEAA127FA);  
  c=HH(c,d,a,b,x[k+3],   S33,0xD4EF3085);  
  b=HH(b,c,d,a,x[k+6],   S34,0x4881D05);  
  a=HH(a,b,c,d,x[k+9],   S31,0xD9D4D039);  
  d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);  
  c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);  
  b=HH(b,c,d,a,x[k+2],   S34,0xC4AC5665);  
  a=II(a,b,c,d,x[k+0],   S41,0xF4292244);  
  d=II(d,a,b,c,x[k+7],   S42,0x432AFF97);  
  c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);  
  b=II(b,c,d,a,x[k+5],   S44,0xFC93A039);  
  a=II(a,b,c,d,x[k+12],S41,0x655B59C3);  
  d=II(d,a,b,c,x[k+3],   S42,0x8F0CCC92);  
  c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);  
  b=II(b,c,d,a,x[k+1],   S44,0x85845DD1);  
  a=II(a,b,c,d,x[k+8],   S41,0x6FA87E4F);  
  d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);  
  c=II(c,d,a,b,x[k+6],   S43,0xA3014314);  
  b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);  
  a=II(a,b,c,d,x[k+4],   S41,0xF7537E82);  
  d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);  
  c=II(c,d,a,b,x[k+2],   S43,0x2AD7D2BB);  
  b=II(b,c,d,a,x[k+9],   S44,0xEB86D391);  
  a=AddUnsigned(a,AA);   b=AddUnsigned(b,BB);   c=AddUnsigned(c,CC);   d=AddUnsigned(d,DD);  
  }  
  //   Step   5.   Output   the   128   bit   digest  
  var   temp=   WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);  
  return   temp.toLowerCase();  
  }    
   
     
  //下面是应用的例子  
  function   submit()  
  {  
      var   value1;  
      value1=document.all("text").value  
      value1=MD5(value1);  
      document.all("text").value=value1;  
      表单.submit();  
  }  
   
   
  //上面是应用的例子  
   
   
  </script>  
   
  </head>  
   
  <body>  
   
  </body>  
   
  </html>  
  请你仔细分析例子部分  
  //下面是应用的例子  
  function   submit()  
  {  
      var   value1;  
      value1=document.all("text").value  
      value1=MD5(value1);  
      document.all("text").value=value1;  
      表单.submit();  
  }  
  Top

5 楼yaozhg(网站开发架构师)回复于 2003-08-02 13:47:12 得分 5

md5加密。  
   
  详细你可以下载一个动网,复制里面的md5.asp文件,调用方法是:password=md5(password)  
   
  在相应页面调用md5.asp文件。  
  <!--#include   file   ="md5.asp"-->Top

6 楼earthpea(问莲根,有丝多少?莲心知为谁苦?)回复于 2003-08-02 14:46:47 得分 0

呵呵,楼上的说的都对,我也推荐MD5:)Top

7 楼kersic(菜鸟也*红*红*火*火)回复于 2003-08-04 21:18:20 得分 0

多谢.Top

8 楼tanguangzhang(心碎男孩)回复于 2003-08-04 21:49:11 得分 0

骗人,谁说MD5不可解密的,现在的计算机一天就能用穷举法破8位的MD5加密码的密码.我就在自己的机子上试过!Top

9 楼yiyeshu(逐月苍狼-月光下的舞者)回复于 2003-08-04 21:59:53 得分 0

穷举就难说了!Top

相关问题

  • 怎么给数据库加密码?
  • 在VB.Net中OLEDB连接Access数据库,数据库能加密码吗?
  • 十万火急!加密的数据库忘了密码!!!
  • 怎样消除加密数据库连接时的密码框?
  • 请问Paradox数据库怎样添加密码?
  • 讨论用户密码加密存如数据库的问题
  • VB中怎样用程序给access数据库加密码?
  • access数据库加密码后不能使用?
  • 如何把webconfig中的数据库连接密码加密?
  • Access2000的“设置数据库密码”安全性如何?我的数据库需要加密

关键词

  • 密码

得分解答快速导航

  • 帖主:kersic
  • par
  • fengchu2
  • yaozhg

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo