当前位置:首页 » 密码管理 » oc加密算法

oc加密算法

发布时间: 2022-03-01 22:46:29

⑴ 如何用VB实现RSA加密算法,网上找到了一份代码,没有注释看不懂,请大神解释!!!

RSA算法非常简单,概述如下:
找两素数p和q
取n=p*q
取t=(p-1)*(q-1)
取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)
取d*e%t==1

这样最终得到三个数: n d e

设消息为数M (M <n)
设c=(M**d)%n就得到了加密后的消息c
设m=(c**e)%n则 m == M,从而完成对c的解密。
注:**表示次方,上面两式中的d和e可以互换。

在对称加密中:
n d两个数构成公钥,可以告诉别人;
n e两个数构成私钥,e自己保留,不让任何人知道。
给别人发送的信息使用e加密,只要别人能用d解开就证明信息是由你发送的,构成了签名机制。
别人给你发送信息时使用d加密,这样只有拥有e的你能够对其解密。

rsa的安全性在于对于一个大数n,没有有效的方法能够将其分解
从而在已知n d的情况下无法获得e;同样在已知n e的情况下无法
求得d。

<二>实践

接下来我们来一个实践,看看实际的操作:
找两个素数:
p=47
q=59
这样
n=p*q=2773
t=(p-1)*(q-1)=2668
取e=63,满足e<t并且e和t互素
用perl简单穷举可以获得满主 e*d%t ==1的数d:
C:\Temp>perl -e "foreach $i (1..9999){ print($i),last if $i*63%2668==1 }"
847
即d=847

最终我们获得关键的
n=2773
d=847
e=63

取消息M=244我们看看

加密:

c=M**d%n = 244**847%2773
用perl的大数计算来算一下:
C:\Temp>perl -Mbigint -e "print 244**847%2773"
465
即用d对M加密后获得加密信息c=465

解密:

我们可以用e来对加密后的c进行解密,还原M:
m=c**e%n=465**63%2773 :
C:\Temp>perl -Mbigint -e "print 465**63%2773"
244
即用e对c解密后获得m=244 , 该值和原始信息M相等。

<三>字符串加密

把上面的过程集成一下我们就能实现一个对字符串加密解密的示例了。
每次取字符串中的一个字符的ascii值作为M进行计算,其输出为加密后16进制
的数的字符串形式,按3字节表示,如01F

代码如下:

#!/usr/bin/perl -w
#RSA 计算过程学习程序编写的测试程序
#watercloud 2003-8-12
#
use strict;
use Math::BigInt;

my %RSA_CORE = (n=>2773,e=>63,d=>847); #p=47,q=59

my $N=new Math::BigInt($RSA_CORE{n});
my $E=new Math::BigInt($RSA_CORE{e});
my $D=new Math::BigInt($RSA_CORE{d});

print "N=$N D=$D E=$E\n";

sub RSA_ENCRYPT
{
my $r_mess = shift @_;
my ($c,$i,$M,$C,$cmess);

for($i=0;$i < length($$r_mess);$i++)
{
$c=ord(substr($$r_mess,$i,1));
$M=Math::BigInt->new($c);
$C=$M->(); $C->bmodpow($D,$N);
$c=sprintf "%03X",$C;
$cmess.=$c;
}
return \$cmess;
}

sub RSA_DECRYPT
{
my $r_mess = shift @_;
my ($c,$i,$M,$C,$dmess);

for($i=0;$i < length($$r_mess);$i+=3)
{
$c=substr($$r_mess,$i,3);
$c=hex($c);
$M=Math::BigInt->new($c);
$C=$M->(); $C->bmodpow($E,$N);
$c=chr($C);
$dmess.=$c;
}
return \$dmess;
}

my $mess="RSA 娃哈哈哈~~~";
$mess=$ARGV[0] if @ARGV >= 1;
print "原始串:",$mess,"\n";

my $r_cmess = RSA_ENCRYPT(\$mess);
print "加密串:",$$r_cmess,"\n";

my $r_dmess = RSA_DECRYPT($r_cmess);
print "解密串:",$$r_dmess,"\n";

#EOF

测试一下:
C:\Temp>perl rsa-test.pl
N=2773 D=847 E=63
原始串:RSA 娃哈哈哈~~~
加密串:
解密串:RSA 娃哈哈哈~~~

C:\Temp>perl rsa-test.pl 安全焦点(xfocus)
N=2773 D=847 E=63
原始串:安全焦点(xfocus)
加密串:
解密串:安全焦点(xfocus)

⑵ wordpress base64解密。高分悬赏。另外请教下加密解密方法,毕竟直接工具解后,还需要再翻译。

?><?php include (TEMPLATEPATH . '/bottom.php'); ?>
<div class='clear'></div>
</div>
<div id="footer">

<div class="fleft">
<?php $foot = get_option('fram_foot'); echo stripslashes($foot); ?>
</div>

<div class="fright">
<ul>
<li>Framed rex wordpress theme from <a href="http://www.dcphotographic.co.uk/" title="Wedding Photographer" > Wedding Photographer </a></li>
<li>Copyright &; <?php echo date('Y');?> <?php bloginfo('name');?> </li>

</ul>
</div>

</div>
</div>
</div>
<?php wp_footer(); ?>
</body>
</html> <?

⑶ 加密算法求解密

如果 有秘钥了 你可以试试也许能解密出来,但是你只有密文和明文这怎么搞, 密文你是如何得到的?

⑷ 这段代码什么意思

这个应该是经过加密后的内容,别人加密的目的就是为了不让其他人知道。
不是所有的加密算法都能够反编译的,就算你知道他的加密算法。比如MD5加密算法等,现在是能,但也得花上200台PC机一两年的不停运算才能够破译。
所以楼主别想在这方面打主意了。不然别人加密就没意义了。

⑸ 跪求 DES跨(C# Android IOS)三个平台通用的加解密方法


#region跨平台加解密(c#安卓IOS)

//publicstaticstringsKey="12345678";

/////<summary>

/////解密

/////</summary>

/////<paramname="pToDecrypt">要解密的以Base64</param>

/////<paramname="sKey">密钥,且必须为8位</param>

/////<returns>已解密的字符串</returns>

//publicstaticstringDesDecrypt(stringpToDecrypt)

//{

////转义特殊字符

//pToDecrypt=pToDecrypt.Replace("-","+");

//pToDecrypt=pToDecrypt.Replace("_","/");

//pToDecrypt=pToDecrypt.Replace("~","=");

//byte[]inputByteArray=Convert.FromBase64String(pToDecrypt);

//using(DESCryptoServiceProviderdes=newDESCryptoServiceProvider())

//{

//des.Key=ASCIIEncoding.ASCII.GetBytes(sKey);

//des.IV=ASCIIEncoding.ASCII.GetBytes(sKey);

//System.IO.MemoryStreamms=newSystem.IO.MemoryStream();

//using(CryptoStreamcs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write))

//{

//cs.Write(inputByteArray,0,inputByteArray.Length);

//cs.FlushFinalBlock();

//cs.Close();

//}

//stringstr=Encoding.UTF8.GetString(ms.ToArray());

//ms.Close();

//returnstr;

//}

//}

/////<summary>

/////对字符串进行DES加密

/////</summary>

/////<paramname="sourceString">待加密的字符串</param>

/////<returns>加密后的BASE64编码的字符串</returns>

//publicstringEncrypt(stringsourceString)

//{

//byte[]btKey=Encoding.UTF8.GetBytes(sKey);

//byte[]btIV=Encoding.UTF8.GetBytes(sKey);

//DESCryptoServiceProviderdes=newDESCryptoServiceProvider();

//using(MemoryStreamms=newMemoryStream())

//{

//byte[]inData=Encoding.UTF8.GetBytes(sourceString);

//try

//{

//using(CryptoStreamcs=newCryptoStream(ms,des.CreateEncryptor(btKey,btIV),CryptoStreamMode.Write))

//{

//cs.Write(inData,0,inData.Length);

//cs.FlushFinalBlock();

//}

//returnConvert.ToBase64String(ms.ToArray());

//}

//catch

//{

//throw;

//}

//}

//}

#endregion

安卓---------------------------------------------------------------------------

////加密

//(Stringmessage,Stringkey)

//throwsException{

//byte[]bytesrc=Base64.decode(message.getBytes(),Base64.DEFAULT);

//Ciphercipher=Cipher.getInstance("DES/CBC/PKCS5Padding");

//DESKeySpecdesKeySpec=newDESKeySpec(key.getBytes("UTF-8"));

//SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");

//SecretKeysecretKey=keyFactory.generateSecret(desKeySpec);

//IvParameterSpeciv=newIvParameterSpec(key.getBytes("UTF-8"));

//cipher.init(Cipher.DECRYPT_MODE,secretKey,iv);

//byte[]retByte=cipher.doFinal(bytesrc);

//returnnewString(retByte);

//}

////解密

//(Stringmessage,Stringkey)

//throwsException{

//Ciphercipher=Cipher.getInstance("DES/CBC/PKCS5Padding");

//DESKeySpecdesKeySpec=newDESKeySpec(key.getBytes("UTF-8"));

//SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");

//SecretKeysecretKey=keyFactory.generateSecret(desKeySpec);

//IvParameterSpeciv=newIvParameterSpec(key.getBytes("UTF-8"));

//cipher.init(Cipher.ENCRYPT_MODE,secretKey,iv);

//byte[]encryptbyte=cipher.doFinal(message.getBytes());

//returnnewString(Base64.encode(encryptbyte,Base64.DEFAULT));

//}

Ios--------------------------------------------------------------------------------------------------------------------

staticconstchar*encryptWithKeyAndType(constchar*text,CCOperationencryptOperation,char*key)
{
NSString*textString=[[NSStringalloc]initWithCString:textencoding:NSUTF8StringEncoding];
//NSLog(@"[[item.urldescription]UTF8String=%@",textString);
constvoid*dataIn;
size_tdataInLength;

if(encryptOperation==kCCDecrypt)//传递过来的是decrypt解码
{
//解码base64
NSData*decryptData=[GTMBase64decodeData:[textStringdataUsingEncoding:NSUTF8StringEncoding]];//转成utf-8并decode
dataInLength=[decryptDatalength];
dataIn=[decryptDatabytes];
}
else//encrypt
{
NSData*encryptData=[textStringdataUsingEncoding:NSUTF8StringEncoding];
dataInLength=[encryptDatalength];
dataIn=(constvoid*)[encryptDatabytes];
}


CCCryptorStatusccStatus;
uint8_t*dataOut=NULL;//可以理解位type/typedef的缩写(有效的维护了代码,比如:一个人用int,一个人用long。最好用typedef来定义)
size_tdataOutAvailable=0;//size_t是操作符sizeof返回的结果类型
size_tdataOutMoved=0;

dataOutAvailable=(dataInLength+kCCBlockSizeDES)&~(kCCBlockSizeDES-1);
dataOut=malloc(dataOutAvailable*sizeof(uint8_t));
memset((void*)dataOut,00,dataOutAvailable);//将已开辟内存空间buffer的首1个字节的值设为值0

//NSString*initIv=@"12345678";
constvoid*vkey=key;
constvoid*iv=(constvoid*)key;//[initIvUTF8String];

//CCCrypt函数加密/解密
ccStatus=CCCrypt(encryptOperation,//加密/解密
kCCAlgorithmDES,//加密根据哪个标准(des,3des,aes。。。。)
kCCOptionPKCS7Padding,//选项分组密码算法(des:对每块分组加一次密3DES:对每块分组加三个不同的密)
vkey,//密钥加密和解密的密钥必须一致
kCCKeySizeDES,//DES密钥的大小(kCCKeySizeDES=8)
iv,//可选的初始矢量
dataIn,//数据的存储单元
dataInLength,//数据的大小
(void*)dataOut,//用于返回数据
dataOutAvailable,
&dataOutMoved);

NSString*result=nil;

if(encryptOperation==kCCDecrypt)//encryptOperation==1解码
{
//得到解密出来的data数据,改变为utf-8的字符串
result=[[NSStringalloc]initWithData:[NSDatadataWithBytes:(constvoid*)dataOutlength:(NSUInteger)dataOutMoved]encoding:NSUTF8StringEncoding];
}
else//encryptOperation==0(加密过程中,把加好密的数据转成base64的)
{
//编码base64
NSData*data=[NSDatadataWithBytes:(constvoid*)dataOutlength:(NSUInteger)dataOutMoved];
result=[GTMBase64stringByEncodingData:data];
}

return[resultUTF8String];

}
+(NSString*)encryptWithContent:(NSString*)contenttype:(CCOperation)typekey:(NSString*)aKey
{
constchar*contentChar=[contentUTF8String];
char*keyChar=(char*)[aKeyUTF8String];
constchar*miChar;
miChar=encryptWithKeyAndType(contentChar,type,keyChar);
return[NSStringstringWithCString:miCharencoding:NSUTF8StringEncoding];
}

⑹ 文件加密解密问题

是不是-高强度文件夹加密大师 8000 ,如果是在安装一个同样的,就能找到,在不行重做系统可以吧

⑺ 中九二次加密有破解方法了吗

中九现已成功破解,天成299.艾雷特V4V5.通过刷机就能看54个频道,明天即将破解三星高清王和海尔高清王 DM-518专业解密115度中星6B可以解密CCTV-3.5.6.8和中央数字电视100多套。还可以解密134亚太6号.138亚洲5号.146马布海1号,主要节目有东森电影.龙祥电影.凤凰电影.东森洋片.好莱坞电影。天映电影.星空卫视.澳亚卫视 HBO电影.CR频道.

⑻ 破解无限网络密码

无线局域网密码破解
只要你要上网的附近有无线局域网而它又加了密码,可用此法一试,不过不要用于非法目的哟{^W'` sB [[t#h
第 1 页 共 23 页
f(Jf7n*y'A 无线网络WEP 的破解过程/w4i;QY[9X
WLAN 技术出现之后,“安全”就成为始终伴随在“无线”这个词身边的影子,针对无线网络(La#H kw$B#BBa
技术中涉及的安全认证加密协议的攻击与破解就层出不穷。现在,因特网上可能有数以百计,
w3sbuFv 甚至以千计的文章介绍关于怎么m4q6MN `7g:av*L
攻击与破解WEP,但有多少人能够真正地成功攻破WEP 的加密算法呢?下面笔者来给&e'N&K-u%a` }7P
大家介绍一些关于WEP 加密手段的知识,以及就是菜鸟只要按照步骤操作也可成功破解hU"P"Jkfi
WEP 密钥的方法。当然最终的目的还是为了让记者做好安全设置对破解更好的进行防范。l6k"H a'yi} @
本系列文章共两篇,在第一篇里主要介绍破解WEP 的方法,第二篇里介绍如何设置WLAN}2V%U-fy$d |^d
的安全设置来进行更好的防范。
%J0Y!U6O^J2]h 一、WEP:无线网络安全最初的保护者[-M)WJW3`Bb
相对于有线网络来说,通过无线局域网发送和接收数据更容易被窃听。设计一个完V5t)| Ar7~
善的无线局域网系统,加密和认证是需要考虑的两个必不可少的安全因素。无线局域网中应:c!l\\$]SK
用加密和认证技术的最根本目的就是使无线业务能够达到与有线业务同样的安全等级。针对,M'r J0d-cq ~
这个目标,IEEE802.11 标准中采用了WEP(Wired Equivalent Privacy:有线对等保密)协议来vn*gZ|"D?L
设置专门的安全机制,进行业务流的加密和节点的认证。它主要用于无线局域网中链路层信0N["S3Um.wR;W.F
息数据的保密。WEP 采用对称加密机理,数据的加密和解密采用相同的密钥和加密算法。8Lg2k5y7e
WEP 使用加密密钥(也称为 WEP 密钥)加密 802.11 网络上交换的每个数据包的数据部u.lmg Ed I
分。启用加密后,两个 802.11 设备要进行通信,必须具有相同的加密密钥,并且均配置为.R6V8cQvZ)y%zz
使用加密。如果配置一个设备使用加密而另一个设备没有,则即使两个设备具有相同的加密
e0~)R?0h?2Y!V 密钥也无法通信。(如图一所示)
+DU?8JzL!Rv 图一:WEP 加密
fE@ oc] |*~+Z WEP 加密过程X!kqn0r
WEP 支持 64 位和128 位加密,对于 64 位加密,加密密钥为 10 个十六进制字qCoq?B
符(0-9 和 A-F)或 5 个 ASCII 字符;对于 128 位加密,加密密钥为 26 个十六进制字符或
R)w `X `F 13 个 ASCII 字符。64 位加密有时称为 40 位加密;128 位加密有时称为 104 位加密。152
6rO4Ge3G 第 2 页 共 23 页$fX@^R(o5m.?|
位加密不是标准 WEP 技术,没有受到客户端设备的广泛支持。WEP 依赖通信双方共享的 gDmb0@+]
密钥来保护所传的加密数据帧。其数据的加密过程如下。WG"BPM,Z8z
1、计算校验和(Check Summing)。%O p$_NN5W1?
(1)对输入数据进行完整性校验和计算。K*G7~8Ku9M#f
(2)把输入数据和计算得到的校验和组合起来得到新的加密数据,也称之为明文,明~~3O_(rb t0x3k f
文作为下一步加密过程的输入。j `y"bm
2、加密。在这个过程中,将第一步得到的数据明文采用算法加密。对明文的加密有Uc0a(V7C)i@
两层含义:明文数据的加密,保护未经认证的数据。6P.VC.^h?w#Y
(1)将24 位的初始化向量和40 位的密钥连接进行校验和计算,得到64 位的数据。z,u#HU-DqG"s
(2)将这个64 位的数据输入到虚拟随机数产生器中,它对初始化向量和密钥的校验
$vC)K~Jz/D O'N+g 和计算值进行加密计算。+Yz%_lG2V)J
(3)经过校验和计算的明文与虚拟随机数产生器的输出密钥流进行按位异或运算得3r Z)B3o'?I!rJ!e
到加密后的信息,即密文。
.?{1o:t)c@^ 3、传输。将初始化向量和密文串接起来,得到要传输的加密数据帧,在无线链路上
5VIT/Rrtr `#{ H"l 传输。(如图二所示)/a%_Ly~9A
图二:WEP 加密过程 BL9W^gJ'Bm
WEP 解密过程
:g"vra%EZ;lx q 在安全机制中,加密数据帧的解密过程只是加密过程的简单取反。解密过程如下。i${ e z(w&Z7h'^
第 3 页 共 23 页
$Q!F.H-}Dm:p~ 1、恢复初始明文。重新产生密钥流,将其与接收到的密文信息进行异或8C/~#o!Hc[ RD
运算,以恢复初始明文信息。$u_k `gG;t9R+V
2、检验校验和。接收方根据恢复的明文信息来检验校验和,将恢复的明文信息分离,n[J1W)\B1a
重新计算校验和并检查它是否与接收到的校验和相匹配。这样可以保证只有正确校验和的数
5q;` f*B3J8J 据帧才会被接收方接受。9B:i5_KhSm
图三:WEP 解密过程d(}6S0Jn
二、破解WEP 密钥前的准备工作
+mUe&q2b6C 在以下的两部分内容内,笔者将逐步地向大家介绍关于怎样来破解WEP 的密钥的2?o-juw1k
方法。这种方法并不需要什么特别的硬件设备,仅仅只需两台(只有一台也可)带有无线网卡
3vAG_c4C}H 的笔记本而已,整个攻击过程所使用的也只是一些共享和自由软件,并不需什么相当专业的 fo1c,U2C2w"Z/]+fH J
工具。看懂这篇文章和学会操作的读者,并不需要你是一名网络专家,不过要基本上熟悉一,I&]"q])n7W[+? t V
些网络术语和基本的原理。最少,你应该知道怎样去ping 另外一台机器以测试网络是否畅N)~.qE;kUM
通,并会打开一个Windows 的命令提示符窗口,知道输入相关命令和了解关于Windows 网
)t"u&|HH7jZh 络属性窗口的相关内容。这就是基本的要求,要不然怎么可称之为菜鸟都可学会的方法呢。,f](Wt9i:Ai}'[
1、组建实验环境
K C:]eG cDq 开始之前,我们的第一步就是要组建一个实验环境,你不可能拿别人的网络来玩你E3b:B&E;b
的破解吧,这样做既违反了法律也是一种不道德的行为噢。搭建一个实验环境下的无线网络nWQK6W'P5w
平台,则无线AP 是少不了的,另外,三台带有无线网卡的笔记本(使用有无线网卡的台式机/Y d$[)j#@U
也可以)组成的简单网络就可满足要求了。组成的网络拓扑如下图四所示。
E6| gN5M6z 第 4 页 共 23 页O SDB"d1M6q4}s,s
图四:组建一个实验环境s)h@:i"o N9Ar;[
在图四所示的网络中,无线AP 的选用,我们使用的是一个Netgear 的产品,型号1IC h yG'r-E,g
为WGT624v2,它在以后充当被攻击目标的角色,在以后就称它为目标AP。在所使用的三
A.Qi\ g Q.LK*wu 台机器中,一台是作为被攻击目标的客户端机器,暂且称之为“Target”;另外两台笔记本一台
%S2D{3H;J(J i 执行主动攻击,促使网络流量的产生,以便足够多的数据包有比较短的时间内能够被捕捉到,
O"Q @Z%b 称这台机器为“Attack”;剩下的那台笔记本就是用来嗅探并捕捉那些主动攻击产生的数据包&N @q9m Z-g
了,则把它称为“Sniff”。当然,尽管整个的破解过程可以在一台笔记本上完成,但笔者并不
g P.\.^#I oV(qY@ 推荐这种做法,用仅仅一台笔记本,会使以后的工作变得很麻烦,并且发现使用这种方法的
[:Yg-Fs j 话窃听程序可能会发生一点小问题。在一个使用率不高的WLAN 中,使用主动攻击比被动探
|.A3eg?uC 测的机会更大,它可在较短的时间内使WLAN 产生更多的数据包从而加快破解WEP 的速度。
[o%a;|me 在这个实验环境中一定非得要使用笔记本不可,我们当然也能够使用桌面PC 或桌!l7Z[j D8p
面PC 与笔记本混用,不过使用笔记本的话它的便携性更好,而且对现在的无线PC Card 卡 ?#@A(P L
有更好的兼容性。
w n&Ou\ }&S6h@ Target 所使用的无线网卡与芯片无关,只要是基于802.11b,任意厂家的产品都可5rmU)a*?C3t z P
满足要求。而Attack 与Sniff 两台机器是使用的两块基于PRISM 芯片的802.11b 的无线网x.L:W!?8_)O
卡。尽管我们在以后的操作中中使用的很多工具(如Kismet)都可支持相当多种类的无线网卡,
*[`4ahc&M 但笔者还是建议使用基于PRISM 2 芯片的网卡,因为这种芯片能够被我们在破解过程所要
8{*O?9j$Z3B.Yp"} 使用到的所有工具都支持。 D(g.f$bC\]
无线网卡一般有外置天线与内置天线两种,如果所购买的无线网卡并没有内置天线
w qAw!V!W)Vh#E 的话,还必须自己再另购天线。不过外置天线的优点就是增益更高,灵敏度更好,可以调节
!j {^ R%qT 天线的方向从而得到更好的信号接收;而内置天线是可以更方便地携带,缺点是天线方向无法~0L1R C'}$z,LND9o6_x
调节。笔者看到有一种移动式外置天线,使用起来是很方便的,在这种移动式天线的底部有j;g9K'S }0z1R
几个橡胶材料的小吸杯,可以把它方便地吸附在笔记本的顶盖上,如果是在车内使用的话,K/j4o+p q;a4U(k%X
还可把它牢牢地吸在车空窗玻璃上呢。如下图五所示。R%@6d9jHA(Wp$d(lh
第 5 页 共 23 页
#Sk#O"N8C 图四:移动式天线 ],VY/tS$E#v W
2、实验WLAN 的设置
m1A]+Lz nb)_ 适当地对这个实验环境进行一下设置是很重要的,因为我们毕竟只想要在这个用来
9c1U3E6q?,T1@ P4W{2Y 实验的环境中来完成所有的操作,在下文中描述的攻击过程中,将会强制终止一1e:qi2qk8q

w,~ G3Kl5t 与AP 有连接的客户端。这种攻击可能会对在这个邻近区域内的无线用户造成严重损害,
f|LE"gj&ln*x 为了避免邻近的AP 上的用户受到附带的攻击, 是要保护那些并不属于实验WLAN 的用户。}C)p'}'B-Cs0@
如果这个操作环境中位于一个复杂的办公室、办公大楼或其他有许多无线网络覆盖的区域中
9bIz-y OD 的话,要尝试一下这样的破解操作,请最好等到晚上没什么人工作,网络不再繁忙时进行, wj(V a:k
免得“城门失火,殃及池鱼”。'{c E'@N@
第一步就是连接和设置这个被攻击的实验无线局域网,如前面所述,这个WLAN 包7hkNG&l"T&e1N
含有一个Access Point(无线路由器)和仅仅一个无线客户端,且这个无线局域网被我们想要
+@?3Z}9I z,e'wEy 破解的WEP 密钥保护起来了。把目标AP 的SSID(System Set ID)设置为“starbucks”,SSIDd?O0[ ?)pjA}q
用来区分不同的网络,也称为网络名称。无线工作站必须出示正确的SSID,与无线访问
h)lC4Ov^ 第 6 页 共 23 页5[7A_ ~A+DB
AP 的SSID 相同,才能访问AP;如果出示的SSID 与AP 的SSID 不同,那么AP 将拒绝他bk&x~3pA De
通过本服务区上网。可以认为SSID 是一个简单的口令,从而提供口令机制,实现一定的安
q;P#E L'b4Np 全性。并在这个WAP 上配置一个64 位的WEP 密钥来进行保护。
~4T$?_U0{P)[ 把如下的信息记录下来以便以后使用
#];huJFy dr7sNB ①AP 的MAC 地址。它通常会在AP 的WEB 配置菜单上显示出来, AP 的底部或.pO5F7B/HB,Y_
侧面的标签上也可能记有本机的MAC 地址。
(q L$t ~w3l ②AP 的SSID。(bI(Z9Fs&[8i-M
③AP 的无线频道(Channel)。9Q/s+G#t5f%\&g"}!v
④WEP 密钥。如果无线AP 显示的密钥像0xFFFFFFFFFF 这样的格式(把设定的值
q-} J5C+hm6M+A 替代F 的值),把除0x 外的每个字母都记下来。
P VSJ,X9nJwE 第二步就是把Target 客户端连接到目标AP 上。我们现在需要把这个客户端连接到
Rof2wiU7S 目标AP 以进行进一步的配置,(以下都是在Windows XP 下进行的),右键单击桌面上的“网
8RL4s-V ?)r } 上邻居”图标,或者通过“开始”菜单,然后单击“属性”,双击“Wireless Network Connection”,
'B7^ C'm7FW 然后打开如图五所示的窗口,其中显示的是有多个可用的无线网络,但如果只有一个无线网^{~;u i|S
络的话,则在该窗口中可能只仅仅显示刚刚配置的那个名为“starbucks”的AP,双击相应的
Z V7m(Kb.j SSID 名称以连接到目标AP。
2t2Of3ML}"pS3\k 图五:连接到目标WLAN
%n"gA1yEH5U/\;h0`8zPk 因为AP 已开启了WEP 保护,连接时Windows 会要求输入一个密码(如图六所示),
oI)^'v ZF 把刚才设置的的WEP 密钥输入(当然从记事本或写字板文档中粘贴过来也可),稍等一会儿后C~)}AO5KB[
Windows 就会报告已连接到网络上。确认一下是否已真正地连接成功,去ping 一个在有线
*N W6l2X rE6x 网络计算机来测试一下;或者假如这个实验WLAN 已接连到因特网上,随便打开一个WEB 站
*Sb%j5q'J3B6f7]fn 点看是否能够连接来加以确认。如果不能成功地ping 通已知地址的机器或者打不开正常的
AbP3aU$o!H.I WEB 站点,则打开无线网卡的属性,单击“支持”按钮,检查一下无线网上是否已获取了一个nL&gc0T
正确的IP 地址,如果没有能够获取正确的IP 地址,看看网络中的DHCP 服务器是否已启用,6m X @J[#Dy[
第 7 页 共 23 页I^.^+AC/a
并检查无线网卡的TCP/IP 属性是否设置成“自动获取IP 地址”了,如果一切都正常,在这个s8u5j%b`8Q4`]9K
无线连接中点击 “修复”按钮来加以改正。
3[8~ Jyo.o 图六:输入WEP 密钥
gAA3bC$~ B z 第三步就是记录下Target 机器的MAC 地址。一旦成功连接到网络上,就把被攻击 M3WS2Paa/}
的Target 计算机的MAC 地址记录下来。方法有两种,一是打开一个命令提示符窗口并输入,}Y Szui8F
ipconfig/all 命令也可看到这个MAC 地址,这个窗口的内容如下图七所示(无线网卡的MACIn(A\ uh/jZp"m"Or
地址信息已高亮度显示)。
W#T h$|y\8m^o 图七:输入ipconfig/all 命令来发现MAC 地址
-T"VMuu$C 二是在Windows XP 中,可从“无线连接状态”窗口来得到这个MAC 地址,单击“支K)g lr'z)R)A*~l
持”按钮,然后单击“详细信息”,这个MAC 地址就显示在窗口顶端的右边(如图八所示),当然,[.X#z6z8]0w2r3y-B
不同的机器显示的名称可能不尽相同,另外的计算机显示的就可能如“物理地址”这一类的描
FFlH&I 述信息了。在这个窗口的信息,组成MAC 地址的字母和数字被短划线分隔,短划线的目的:S{$k+tV6a
只是使这些字符看得更清楚,但实际的MAC 地址是没有这些短划线的。
7zSB6W,{(Y(xxE#L:n 第 8 页 共 23 页&_TR+VEW ? kfi
图八:在网络连接详细信息中显示的MAC 地址|jVsAb8G
3、笔记本的设置
dq4iF#X5A a'e 首先,我们来准备破解WEP 密钥所需要的几个工具软件(Kismet、Airomp、
E/T.y3[/t fH)X Void11、Aireplay 和Aircrack),Kism
4h*L/y m4by et:用来扫描整个区域内的WLAN,找到实验用的目标WLAN,收集相关数据,t`[Le!^2z
(SSID 值、频道、AP 及与之相连接的客户端的MAC 地址等);Airomp:对目标WLAN 进行y+V$~ b([8?7US
扫描并捕获其产生的数据包到一个文件中;Void11:从目标AP 中验证某台计算机,并强制这
?s5vz2V#c 个客户端重新连接到到目标AP,以使其一个ARP 请求;Aireplay:接受这些ARP 请求并回送
,r)@/eXNB&~ b 到目标AP,以一个合法的客户端身份来截获这个ARP 请求; Aircrack:接受Airomp 生成的
-b3a7N^+_'Y%K] 捕获文件并从中提取WEP 密钥。
c[jnR 它们都是公开源代码的共享或自由软件,这些所有的工具都可以在一个被称为 K/dj"f&Bo{l,Y
“Auditor Security Collection LIVE CD” 的共享光盘上找到,这个光盘是一张可引导系统的光J8Oey+{F5DN7w
盘,可以引导一个经过改进过的Kanotix Linux,这个Linux 版本无需存取硬盘,在通过光盘n L/sCm1{ t
启动时直接安装到内存中就,它启动后可自动检测和配置多种无线网卡。在本文使用的
A)n-ez'w Auditor Security Collection LIVE CD 是最新版本,版本号为auditor-150405-04,下载地址
6gA5a(VHtgRu!M)lO 为[url=http://new.remote-exploit.org/index.php/Auditor_mirrors]http://new.remote-exploit.org/index.php/Auditor_mirrors[/url],下载的文件格式是CD 映像文
f4]G8?O 件或.ISO 文件,通过NERO(或其他的刻录软件)把它刻录下来,给Attack 和Sniff 机器各一
'QUqI R 张。
1r*kuuO!n3CNe 第 9 页 共 23 页
1P8x]'Lzg;x 首先把无线网卡插入到笔记本中(如果机器内置有无线网卡就最好不过了),再把笔记 QAc4sI u_#y
本设置成从光盘引导,并把Auditor Security Collection CD 放入光驱中。从Auditor 引导菜,X d Ph Oqf
单中选择合适的屏幕分辨率后,Kanotix Linux 会被安装到内存中运行并出现Auditor 开始屏
(S8M:OZ)`k%`0W 幕(如图九所示)。-R"kU!NP$C6l
图九:Auditor 的开始屏幕j*ohUd4O*z'O}E
在这个Auditor 系统中,两个最重要的图标是位于屏幕左下方的Programs 和
N-FU1n"LDJ C9c Command Line 图标,我们以后的许多操作基本上都是要通过它们来完成的。如图十所示。
Q:_;} k-F_4z W3{$@ 图十:Program 和Command Line 的位置
(t}k#c;q 在这里,开始做其他任何其他的事情之前,先要确认我们机器上的无线网卡能够通)s1X!a h.jhMi_9B
过Auditor 的验证。单击Command Line 图标以打开一个命令行窗口,然后输入iwconfig 命6X6j;yn/g@
令,在Auditor 显示出的信息中,你会看到有关于“Wlan0”的信息,它是Auditor 为基于PRISM
P:\#M6Z-|-J 芯片的卡确定的一个名称,如果用来操作攻击的笔记本的屏幕显示如图十一所示的窗口,则"YRpCeC2PZ ^
表明Auditor 已检测到了无线网卡,现在就可以开始下一步工作了。对于另外一台笔记本,
?t!y(Fy1t 也进行同样的步骤,重复这一操作。
f` C3]@.a 第 10 页 共 23 页@.H3wE pU
图十一:用iwconfig 命令检验无线网卡
#m `F]*I4e4W4g%D/a,A 好,准备工作现在基本完成,在本文的下篇里,我们将开始实际的解决过程。
b&wP-NbK R 三、实战破解过程 pO'| j5S,|
1、用Kismet 进行网络探测8iT-vdWv,a1A
Kismet 是一个基于Linux 的无线网络扫描程序,这是一个相当方便的工具,通过测;Qfz!\ZX
量周围的无线信号来找到目标WLev,\)s`
AN。虽说Kismet 也可以捕获网络上的数据通信,但在还有其他更好的工具
TN"G8ro7\l*A 使用(如Airomp),在这里我们只使用它来确认无线网卡是否正常工作和用来扫描无线网
bj:kz}kT 络,在下面的部分中将会换用不同的工具软件来真正地侦听和捕获网络上的数据通信。
l Tft O|2x 单击Programs 图标,然后是Auditor,再 Wireless,, 然后Scanner/Analyzer,
3Pi1r)}w 最后是 Kismet ,来运行Kismet 程序。如图十二所示。
-T*eK.w c q.vn 第 11 页 共 23 页
H'Fx4N[5U qH w;i 图十二:运行Kismet
P(j9t%p-B9em 除扫描无线网络之外,Kismet 还可以捕获网络中的数据包到一个文件中以方便以后X q6]Fd.UQ
加以分析使用,因此Kismet 会询问用来存放捕获数据包的文件的位置,如我想把这些文件e,o{,J,^$D v
保存到rootdesktop 下,则单击“Desktop”,然后选择“OK”即可,如图十三所示。然后Kismet
0U"c%hJkC9w5De 然后会询问捕获文件的前缀名字,我们可以更改这个默认的名字,例如把它更改为“capture”w$hw3`%V8PWs{@(~
然后点击OK,这样Kismet 就会以capture 为文件名的开头,再在其后依次添加序号来保存R)n;}I`R-j
捕捉下来的数据包到不同的文件中。Yg B-D'U8H/EW-kw
图十三:在Kismet 中指定文件的存放位置
^+Z2I%Y O 第 12 页 共 23 页
a sV5xdp5bG 当Kismet 开始运行时,它将会显示这个区域内它找到的所有的无线局域网,“Name”
!oj'fZn 那一列中所显示出来的内容就是哪一个WLAN 中AP 的SSID 值,那当然开始设定的目标2mP0T}6w
WLAN 也应该包含中其中(Name 下值为starbucks 的那一行),在这一行中,CH 列的值(AP;`:J+q*o-^Gz4H/N
所使用的频道)应该与开始所记下的相同。在窗口的最右边显示的信息是Kismet 发现的
+`RL YB+l5L!~;mH WLAN 的数目,已被捕捉下来了的数据包、已加密了的数据包的数目等等。如下图十四所示。9P'Ahy,U
如果Kismet 发现了许多相邻的Access Point,你应把这个实验环境搬得离这些AP 更远一些,
v&Qepx,C@DC 或者把与你网上相连接的任何高增益天线断开。
!I'P.S qS1kgg$f 甚至当目标计算机已关闭时,Kismet 也正可从我们的目标AP 中检测到数据包,这是因
u.e'T;U-WO+? 为目标AP 在不停地发出“beacons”,它将告之拥有无线网卡的计算机有一个AP 在此范围内,"ho"L7VDk D ~8qN
我们可以这样想3g,}!{'s T4oql
像,这台AP 宣布,“我的名字是XXXXX,请大家与我连接。”
rM5L/`w9W Rb 图十四:Kismet 显示的内容 w coO)g
默认的Kismet 是运行在“autofit”模式下的,它显示的内容杂乱无章的,我们可以通
l DB#CW 过排序把AP 按任何有意义有顺序来重新排列,按下“s”键到“Sort”菜单,在这儿可以按下某个
tg/d$h.v~"} 字母来对搜寻到的AP 进行排序,如“f”键是按AP 名字的第一个字母来排序,而“c”键是按AP
7?#J&Uyyc 使用的频道来进行排序,“l”是按时间来进行排序等等。 f UvUO
现在我们来查看一下目标WLAN 中AP 的详细信息,按下“s”键,然后再按下“c”键,
FgA?b4H9R|$J 把整个AP 的列表用频道的方式来排列,使用光标键移动高亮条到表示目标AP 的SSID 上,l4}7YGB6M/Q

⑼ 中高级IOS开发程序员要具备哪些能力和技能

一、数据加密必备技能-密码学
在网络加速发展的时代,数据安全已经是一个必不可少的技术课题。如何让用户数据、网络数据、内容数据安
全可靠,也是每个开发者需要深思并捍卫的。熟练掌握密码学原理,了解 MD5 算法、非对称、对称加密算法底 层实现,以及如何运用到项目开发中。让开发者实力捍卫数据安全!
1.密码的起源历史
2.Base 64 编码格式、散列函数
3.MD5 &加盐、HMAC加密
4.对称加密算法
5.RSA Openssl、数字签名
二、RunLoop
RunLoop是iOS和OS X中非常基础的一个概念,在开发中不常用,在面试中也几乎是都会问到的一个问题.对RunLoop的概念以及底层实现原理,都是我们应该要掌握的,并且要知道在开发中哪些地方可以使用到RunLoop。
1.能理解RunLoop概念
2.知道RunLoop的使用方式
3.RunLoop在开发中的使用
三、Runtime
OC 纵横 iOS 开发已经多年,但是我们真的了解他们?他到底是怎么样的一个底层原理?在使用上难道就真的只有
这样?我们该如何更加掌握这门语言的应用?另外 OC 能做到的 Swift 也能做到吗?
1.runtime 到底是什么
2.runtime 怎么运用
3.runtime 怎么运用
4.siwft 中如何使用runtime
四、SDWebImage源码的分析
在开发中, 为了提高工作的效率, 我们大都会引入很多的框架, 觉得只要能能完成自己的工作达到目的就行, 当然这没错,但是确忽略了很多好框架中的编程思想,和实现的逻辑, 只知道使用框架, 不知道它里面的精髓, 长远来说对我们的发展是不好的, 所以让我们从经典的框架开始学起,一起来学习SDWebImage的精髓.
1.SDWebImage的demo的分析
2.SDWebImage缓存的概念
3.下载超时和图片的格式区分
4.SDWebImage的清理机制和内存的监听
五、H264编码
扎克伯格说“视频是未来facebook社交的最重要的行为之一”。作为开发而言,我们应该了解视频如何做到编码。在直播平台编码的技术也是频频使用,让我们从业务层跨往视频编码底层的第一步。
1.了解直播项目的架构以及技术突破点;
2.视频组成原理
3.H264文件的结构
4.软编码和硬编码的区别以及应用场景
5.硬编码的原理
6.使用硬编码编码视频文件
7.H264解码的多种处理方式
六、AAC编码
直播、音视频项目已经是iOS 应用类的APP的中坚力量。解密音频编码过程,让开发者不在对编码讳莫如深。映客、全名K歌、网易云音乐等等知名APP都会用到的音频AAC编码方式。
1.了解声音从模拟信号到数字信号的原理
2.PCM编码解析
3.AAC编码原理
4.AAC文件的结构
5.音频在软编码FFmpeg 和 硬编码的区别
6.利用硬编码编码音频
7.捕获媒体数据,如何区分音视频数据
8.利用FFmpeg 合成 H264文件和AAC文件到MP4容器中

⑽ 请问Access数据库里面的一些密码是用什么方式加密的

用Delphi采用ADO连接数据库用以下方法可以实现:

//还原数据,以便自已使用数据库
file(pchar(APP_path+'\data\account.db'),pchar(app_path+'data\temp.db'),false); //app_path表示程序的当前目录,account.db是个更改了扩展名的MDB文件
uncrypMDB(App_path+'data\temp.db');
file(pchar(App_path+'data\temp.db'),pchar(APP_path+'\data\account.db'),false);
adoconn.connectionstring:='provider=Microsoft.Jet.OLEDB.4.0;Data Source='+App_path+'data\account.db;Persist Security Info=false'; //adocon是个TADOConnection组件
try
adoconn.connected:=true;
except
MessageBox(handle,'打开数据库出现致命的错误!!!','错误',MB_OK+MB_ICONERROR);
end;
//打开后马上对其加密
file(pchar(APP_path+'\data\account.db'),pchar(app_path+'data\temp.db'),false); //app_path表示程序的当前目录,account.db是个更改了扩展名的MDB文件
EncrypMDB(App_path+'data\temp.db');
file(pchar(App_path+'data\temp.db'),pchar(APP_path+'\data\account.db'),false);
deletefile(App_path+'data\temp.db');
上面使用了两次临时文件,是因为数据库打开后再对MDB进行直接的写入会出现问题,而且你无法去确定多少个用户打开了程序。
整个程序共用一个TADOConnection,只在打开数据库连接的时候还原MDB文件,其它时间MDB文件一直都处于加密状态!用户复制了MDB文件一般很难知道它是什么!

打开数据库后会有一个.ldb文件,类型会出现ACCESS等字样。
reg:=TRegistry.Create;
try
reg.RootKey:=HKEY_CLASSES_ROOT;
reg.OpenKey('.ldb');
reg.WriteString(','tempfile');
finally
reg.closekey;
reg.free;
end;
这样用户看到的文件类型是tempfile,所以是比较安全的。

热点内容
福建电信服务器ip地址 发布:2025-01-19 23:07:24 浏览:647
服务器怎么制作公告栏 发布:2025-01-19 23:06:23 浏览:873
英雄联盟皮肤源码 发布:2025-01-19 22:56:14 浏览:94
三星手机忘记解锁密码怎么办 发布:2025-01-19 22:45:43 浏览:291
Java为什么没有预编译命令 发布:2025-01-19 22:44:14 浏览:303
路由器上写的初始无密码什么意思 发布:2025-01-19 22:42:38 浏览:847
mysql配置主从数据库 发布:2025-01-19 22:35:33 浏览:730
4大数据库 发布:2025-01-19 22:34:35 浏览:975
win10用什么解压 发布:2025-01-19 22:27:15 浏览:799
反编译连接数据库 发布:2025-01-19 22:07:55 浏览:787