锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品无码专区久久同性男,综合人妻久久一区二区精品,伊人色综合久久天天人手人婷http://www.shnenglu.com/msopengl/archive/2011/10/18/158615.htmljemmyLiujemmyLiuTue, 18 Oct 2011 06:39:00 GMThttp://www.shnenglu.com/msopengl/archive/2011/10/18/158615.htmlhttp://www.shnenglu.com/msopengl/comments/158615.htmlhttp://www.shnenglu.com/msopengl/archive/2011/10/18/158615.html#Feedback0http://www.shnenglu.com/msopengl/comments/commentRss/158615.htmlhttp://www.shnenglu.com/msopengl/services/trackbacks/158615.html

鍦ㄥ仛DX緙栫▼鏃墮」鐩腑浼氶亣鍒頒笂闈㈢殑閿欒

瑙e喅鍔炴硶錛?/p>

#include <tchar.h>
#define _STRSAFE_H_INCLUDED_
#define VC_EXTRALEAN        // Exclude rarely-used stuff from Windows headers
#define _WIN32_WINNT 0x0501

鍗硉char.h澶村0鏄庝竴瀹氳緗墠    瀵逛簬楂樼増鏈殑緙栬瘧鍣ㄨ璁劇疆WINNT澶т簬鎴栫瓑浜?01鑰岄潪400

甯屾湜瀵瑰ぇ瀹舵湁甯姪

jemmyLiu 2011-10-18 14:39 鍙戣〃璇勮
]]>
C#璇誨彇WM鐭俊閭歡http://www.shnenglu.com/msopengl/archive/2011/07/06/150313.htmljemmyLiujemmyLiuWed, 06 Jul 2011 09:14:00 GMThttp://www.shnenglu.com/msopengl/archive/2011/07/06/150313.htmlhttp://www.shnenglu.com/msopengl/comments/150313.htmlhttp://www.shnenglu.com/msopengl/archive/2011/07/06/150313.html#Feedback1http://www.shnenglu.com/msopengl/comments/commentRss/150313.htmlhttp://www.shnenglu.com/msopengl/services/trackbacks/150313.html
System.Object
聽聽Microsoft.WindowsMobile.PocketOutlook.Message
聽聽聽聽 Microsoft.WindowsMobile.PocketOutlook.EmailMessage
聽聽聽聽 Microsoft.WindowsMobile.PocketOutlook.SmsMessage

C#鏂瑰紡璇誨彇浼間箮寰堢畝鍗?br />寮曡嚜:http://kb.cnblogs.com/a/1450367/

WM鐭俊璇誨彇(C#)

//閲囩敤DataGrid鐜板疄

//璇誨彇鏀朵歡綆卞唴淇℃伅
privatevoid聽button1_Click(object聽sender,聽EventArgs聽e)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽DataTable聽mydt聽
=new聽DataTable();
聽聽聽聽聽聽聽聽聽聽聽聽mydt.TableName聽
="InBox";
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SenderName",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SenderAddress",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("Subject",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SendTime",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("ReceiveTime",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SendTime1",聽typeof(DateTime)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("ReceiveTime1",聽typeof(DateTime)));
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(NetMAPI.MAPIInit())
聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽NetMAPI聽mapi聽
=new聽NetMAPI();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.Login())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.OpenMessageStore())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.OpenInbox())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.GetContents())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
int聽count聽=聽mapi.GetRowCounts();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SmsMessage聽msg;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽StringBuilder聽s聽
=new聽StringBuilder(140);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
int聽i聽=0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽DataRow聽dr;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
while聽(mapi.GetNextMessage(out聽msg,聽false))
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽i
++;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr聽
=聽mydt.NewRow();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSenderName(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SenderName"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//MessageBox.Show(s.ToString());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSenderEmail(s);
聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SenderAddress"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//MessageBox.Show(aa);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//MessageBox.Show(s.ToString());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSubject(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"Subject"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
/**/////MessageBox.Show(s.ToString());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSubmitTime(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SendTime"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetReceivedTime(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"ReceiveTime"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.Dispose();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mydt.Rows.Add(dr);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(i聽==聽count聽-1)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
break;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mapi.Logout();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽
else
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MessageBox.Show(
"faile");
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽NetMAPI.Term();
聽聽聽聽聽聽聽聽聽聽聽聽
this.dataGrid1.DataSource聽=聽mydt;
聽聽聽聽聽聽聽聽}

//璇誨彇鍙戜歡綆卞唴鐭俊
privatevoid聽button2_Click(object聽sender,聽EventArgs聽e)
聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽DataTable聽mydt聽
=new聽DataTable();
聽聽聽聽聽聽聽聽聽聽聽聽mydt.TableName聽
="SendedBox";
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SenderName",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SenderAddress",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("Subject",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SendTime",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("ReceiveTime",聽typeof(string)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("SendTime1",聽typeof(DateTime)));
聽聽聽聽聽聽聽聽聽聽聽聽mydt.Columns.Add(
new聽DataColumn("ReceiveTime1",聽typeof(DateTime)));
聽聽聽聽聽聽聽聽聽聽聽聽
if聽(NetMAPI.MAPIInit())
聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽NetMAPI聽mapi聽
=new聽NetMAPI();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.Login())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.OpenMessageStore())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.OpenSentItems())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
if聽(mapi.GetContents())
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SmsMessage聽msg;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽StringBuilder聽s聽
=new聽StringBuilder(140);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽StringBuilder聽s1聽
=new聽StringBuilder(25);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽StringBuilder聽s2聽
=new聽StringBuilder(25);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
int聽i聽=0;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽DataRow聽dr;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
while聽(mapi.GetNextMessage(out聽msg,聽false))
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽i
++;

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr聽
=聽mydt.NewRow();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetRecipients();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽SmsMessage.RecipientType聽tt;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetNextRecipient(s1,聽s2,聽
out聽tt);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SenderName"]聽=聽s1.ToString();
聽聽聽聽聽聽
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SenderAddress"]聽=聽s2.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//MessageBox.Show(aa);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//MessageBox.Show(s.ToString());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSubject(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"Subject"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
/**/////MessageBox.Show(s.ToString());
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetSubmitTime(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"SendTime"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.GetReceivedTime(s);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽dr[
"ReceiveTime"]聽=聽s.ToString();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽msg.Dispose();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mydt.Rows.Add(dr);
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//if聽(i聽>聽230)
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//聽聽聽聽break;
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽
//}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}

聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽mapi.Logout();
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽
else
聽聽聽聽聽聽聽聽聽聽聽聽{
聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽聽MessageBox.Show(
"faile");
聽聽聽聽聽聽聽聽聽聽聽聽}
聽聽聽聽聽聽聽聽聽聽聽聽NetMAPI.Term();
聽聽聽聽聽聽聽聽聽聽聽聽
this.dataGrid1.DataSource聽=聽mydt;

聽聽聽聽聽聽聽聽}

//榪欎袱孌典唬鐮佽鍙栫殑鏄敹浠剁鍜屽彂浠剁閲屽叏閮ㄧ煭淇?榪樹笉鏄緢鐞嗘兂..聽






jemmyLiu 2011-07-06 17:14 鍙戣〃璇勮
]]>
WinCE寮鍙戜笂緗戣褰曡鍙栭棶棰?/title><link>http://www.shnenglu.com/msopengl/archive/2011/06/10/148449.html</link><dc:creator>jemmyLiu</dc:creator><author>jemmyLiu</author><pubDate>Fri, 10 Jun 2011 10:31:00 GMT</pubDate><guid>http://www.shnenglu.com/msopengl/archive/2011/06/10/148449.html</guid><wfw:comment>http://www.shnenglu.com/msopengl/comments/148449.html</wfw:comment><comments>http://www.shnenglu.com/msopengl/archive/2011/06/10/148449.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.shnenglu.com/msopengl/comments/commentRss/148449.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/msopengl/services/trackbacks/148449.html</trackback:ping><description><![CDATA[ <font size="2">聽聽 鏈榪戝湪鍋歐indow Mobile 6 鐨勫紑鍙戣繃紼嬩腑錛屽浜庤鍙朓E嫻忚鍣ㄥ巻鍙茶褰曡繃紼?br />聽聽聽 鍙戠幇闂濡備笅錛?br />聽 1.灝濊瘯浣跨敤CreateFile榪涜Open鎿嶄綔鍙戠幇榪斿洖鍙ユ焺鏃犳晥錛岀洰鏍囨搷浣滄枃浠墮棶\Content.IE5\index.dat<br />聽聽聽聽 姝ゆ枃浠朵竴鐩磋嫻忚鍣ㄥ崰鐢紝浣嗘墦寮鎵嬫満嫻忚鍣ㄦ煡鐪嬭繘紼嬬鐞嗗櫒騫舵棤嫻忚鍣ㄨ繘紼嬫墦寮<br />聽 2.絎簩縐嶆柟寮忛噰鐢–eCopyFile鍚屾牱鐨勭粨鏋淐opy澶辮觸<br />聽 3.鏂瑰紡涓塛indow mobile 6 SDK浠庡ご鍒板熬鍙湁涓涓搷浣淏rowser Cache鐨勫熷彛錛屽嚱鏁板悕FindFirstUrlCacheEntry<br />聽聽聽 浣嗗彂鐜版鍑芥暟搴旇涓篊#鍑芥暟錛學indows mobile 6 Win32涓嶈兘浣跨敤<br /><br /><br />聽聽 MSDN璁哄潧鍙戠幇寰堝鍚屾牱鐨勯棶棰橈紝浣嗗潎鏃犱竴涓悎鐞嗙殑瑙g瓟錛屽鏁伴兘鏄湭鎻愪緵API<br />聽聽 鎴戝氨閮侀椃浜嗭紝闅鵑亾鎴戝氨寰椾笉鍒癢indows Mobile鐨勪笂緗戣褰曚俊鎭簡涔堬紵<br />聽聽 甯屾湜楂樻墜甯繖瑙g瓟錛岀湡鐨勫緢鎬ワ紝鎵浠ヨ榪彂鍦ㄨ藩璋紒</font> <img src ="http://www.shnenglu.com/msopengl/aggbug/148449.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/msopengl/" target="_blank">jemmyLiu</a> 2011-06-10 18:31 <a href="http://www.shnenglu.com/msopengl/archive/2011/06/10/148449.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>HASH鏍¢獙錛圡D5 SHA256錛?/title><link>http://www.shnenglu.com/msopengl/archive/2011/02/28/140769.html</link><dc:creator>jemmyLiu</dc:creator><author>jemmyLiu</author><pubDate>Mon, 28 Feb 2011 01:42:00 GMT</pubDate><guid>http://www.shnenglu.com/msopengl/archive/2011/02/28/140769.html</guid><wfw:comment>http://www.shnenglu.com/msopengl/comments/140769.html</wfw:comment><comments>http://www.shnenglu.com/msopengl/archive/2011/02/28/140769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/msopengl/comments/commentRss/140769.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/msopengl/services/trackbacks/140769.html</trackback:ping><description><![CDATA[ <div class="lbdtzvv" id="cnblogs_post_body"> <p align="center"> <strong>OpenSSL </strong> <strong>浣跨敤鎸囧崡 </strong> </p> <p align="center"> <font face="Verdana">http://www.fs2you.com/files/5b43b3b0-5e3d-11dd-9b38-0019d11a795f/</font>聽 </p> <p>聽 </p> <p> <strong>鐩綍 </strong> </p> <p>鈥⒙?浠嬬粛 </p> <p>鈥⒙?緙栬瘧 </p> <p>鈥⒙?榪愯 OpenSSL.exe </p> <p>鈥⒙?綆楁硶緙栫▼ API </p> <p>4.1 瀵圭О綆楁硶 </p> <p>4.1.1 DES </p> <p>4.1.2 A ES </p> <p>4.1.3 RC4 </p> <p>4.1.4 EVP_ </p> <p>4.2 鍏挜綆楁硶 </p> <p>4.3 Hash 綆楁硶 </p> <p>4.4 闅忔満鏁扮畻娉?</p> <p>鈥⒙?SSL 鍗忚緙栫▼ API </p> <p>鈥⒙?CA 鍜岃瘉涔?</p> <p>鈥⒙?聽 </p> <p>鈥⒙?鍙傝冪綉鍧 </p> <p>鈥⒙?聽 </p> <p>鈥⒙?紺轟緥紼嬪簭 </p> <p>鈥⒙?聽 </p> <br /> <p>聽 </p> <p>鈥⒙?<strong>浠嬬粛 </strong></p> <p>OpenSSL 鏄嬌鐢ㄩ潪甯稿箍娉涚殑 SSL 鐨勫紑婧愬疄鐜般傜敱浜庡叾涓疄鐜頒簡涓?SSL 鎵鐢ㄧ殑鍚勭鍔犲瘑綆楁硶錛屽洜姝?OpenSSL 涔熸槸琚箍娉涗嬌鐢ㄧ殑鍔犲瘑鍑芥暟搴撱?</p> <p> <strong>1.1 SSL </strong> </p> <p>SSL(Secure Socket Layer) 瀹夊叏鍗忚鏄敱 Netscape 鍏徃棣栧厛鎻愬嚭錛屾渶鍒濈敤鍦ㄤ繚鎶?Navigator 嫻忚鍣ㄥ拰 Web 鏈嶅姟鍣ㄤ箣闂寸殑 HTTP 閫氫俊 ( 鍗?HTTPS) 銆傚悗鏉?SSL 鍗忚鎴愪負浼犺緭灞傚畨鍏ㄩ氫俊浜嬪疄涓婄殑鏍囧噯錛屽茍琚?IETF 鍚告敹鏀硅繘涓? TLS(Transport Layer Security) 鍗忚銆?</p> <p>SSL/TLS 鍗忚浣嶄簬 TCP 鍗忚鍜屽簲鐢ㄥ眰鍗忚涔嬮棿錛屼負浼犺緭鍙屾柟鎻愪緵璁よ瘉銆佸姞瀵嗗拰瀹屾暣鎬т繚鎶ょ瓑瀹夊叏鏈嶅姟銆?SSL 浣滀負涓涓崗璁鏋訛紝閫氫俊鍙屾柟鍙互閫夌敤鍚堥傜殑瀵圭О綆楁硶銆佸叕閽ョ畻娉曘?MAC 綆楁硶絳夊瘑鐮佺畻娉曞疄鐜板畨鍏ㄦ湇鍔°?</p> <p> <strong>1.2 OpenSSL </strong> </p> <p>OpenSSL 鏄憲鍚嶇殑 SSL 鐨勫紑婧愬疄鐜幫紝鏄敤 C 璇█瀹炵幇鐨勩?</p> <p>OpenSSL 鐨勫墠韜槸 SSLeay 錛屼竴涓敱 Eric Young 寮鍙戠殑 SSL 鐨勫紑婧愬疄鐜幫紝鏀寔 SSLv2/v3 鍜?TLSv1 銆?</p> <p>浼撮殢鐫 SSL 鍗忚鐨勬櫘鍙婂簲鐢紝 OpenSSL 琚箍娉涘簲鐢ㄥ湪鍩轟簬 TCP/Socket 鐨勭綉緇滅▼搴忎腑錛屽挨鍏舵槸 OpenSSL 鍜?Apache 鐩哥粨鍚堬紝鏄緢澶氱數瀛愬晢鍔$綉绔欐湇鍔″櫒鐨勫吀鍨嬮厤緗?</p> <p>聽 </p> <p>鈥⒙?<strong>緙栬瘧鍜屽畨瑁?OpenSSL </strong></p> <p>OpenSSL 寮鏀炬簮浠g爜錛岃繖瀵瑰涔犮佸垎鏋?SSL 鍜屽悇縐嶅瘑鐮佺畻娉曟彁渚涗簡鏈轟細錛屼篃渚夸簬鍦ㄤ笂闈㈣繘涓姝ュ紑鍙戙?</p> <p> <strong>2.1 </strong> <strong>鑾峰緱 OpenSSL </strong> </p> <p>鍒?OpenSSL 鐨勭綉绔欏嵆鍙笅杞藉綋鍓嶇増鏈殑 OpenSSL 婧愪唬鐮佸帇緙╁寘銆?</p> <p>褰撳墠鐗堟湰 openssl- 0.9.8 .tar.gz 錛屽彧鏈?3M 澶氾紝姣旇緝綺劇畝銆傝В鍘嬬緝鍚庡緱鍒頒竴涓洰褰?openssl-0.9.8 錛屽叡鏈夌害 1800 涓枃浠訛紝 15M 銆傚叾涓?crypto 瀛愮洰褰曚腑鏄紬澶氬瘑鐮佺畻娉曞疄鐜幫紝 ssl 瀛愮洰褰曚腑鏄?SSL 鍗忚鐨勫疄鐜般?</p> <p>鍦?Linux 涓В鍘嬬緝錛?</p> <p>$tar zxf openssl- 0.9.8 .tar.gz </p> <p>鍦?Windows 涓彲浠ヤ嬌鐢?winzip 鎴?winrar 銆?</p> <p> <strong>2.2 </strong> <strong>緙栬瘧宸ュ叿 </strong> </p> <p>緙栬瘧 OpenSSL 闇瑕?Perl 鍜?C 緙栬瘧鍣ㄣ傚湪 Windows 涓嬪鏋滆鐢ㄥ姞瀵嗙畻娉曠殑姹囩紪浠g爜瀹炵幇錛岃繕闇瑕?masm 鎴?nasm 姹囩紪鍣ㄣ?( 姹囩紪浠g爜鍙互姣?C 浠g爜鏄捐憲鎻愰珮瀵嗙爜榪愮畻閫熷害 ) </p> <p>Perl 鍦?Windows 涓嬫帹鑽愪嬌鐢?Active Perl 銆?</p> <p>C 緙栬瘧鍣ㄥ彲浠ヤ嬌鐢?gcc 銆傚湪 W indows 涓嬪彲浠ヤ嬌鐢?Visual C 緙栬瘧鍣ㄣ?</p> <p>姹囩紪鍣ㄦ帹鑽愪嬌鐢?nasm 銆?</p> <p>榪欎簺宸ュ叿鎵鍦ㄧ洰褰曞繀欏誨姞鍏ュ埌 PATH 鐜鍙橀噺涓幓銆?</p> <p> <strong>2.3 </strong> <strong>緙栬瘧鍜屽畨瑁呮楠?</strong> </p> <p>鏌ョ湅 readme 鏄釜濂戒範鎯備粠 readme 浜嗚В鍒伴渶瑕佽繘涓姝ユ煡鐪?INSTALL 鍜?INSTALL.W32 鏂囦歡銆?</p> <p>鍦?Windows 涓細 </p> <p>>perl Configure VC-WIN32 </p> <p>>ms\do_nasm ( 濡傛灉涓嶄嬌鐢ㄦ眹緙栦唬鐮佸疄鐜幫紝鍒欏彲 >ms\do_ms) </p> <p>>nmake -f ms\ntdll.mak </p> <p>>cd out32dll </p> <p>>..\ms\test </p> <p>緙栬瘧緇撴灉寰楀埌澶存枃浠躲侀摼鎺ュ簱銆佽繍琛屽簱鍜?openssl.exe 宸ュ叿銆傚ご鏂囦歡浣嶄簬 ./inc32 鎴栬?./inculde 鐩綍錛屾湁涓涓? openssl 瀛愮洰褰曪紝鍐呮湁鍑犲崄涓?.h 鏂囦歡銆傞摼鎺ュ簱鍗?./out32dll 鐩綍涓殑 libeay32.lib 鍜?ssleay32.lib 錛屽垎鍒槸瀵嗙爜綆楁硶鐩稿叧鐨勫拰 ssl 鍗忚鐩稿叧鐨勩傝繍琛屽簱鏄?./out32dll 鐩綍涓殑 libeay32.dll 鍜?ssleay32.dll 錛屽拰閾炬帴搴撶浉瀵瑰簲銆傚湪 ./out32dll 涓繕鏈変竴涓伐鍏?openssl.exe 錛屽彲浠ョ洿鎺ョ敤鏉ユ祴璇曟ц兘銆佷駭鐢?RSA 瀵嗛挜銆佸姞瑙e瘑鏂囦歡錛岀敋鑷沖彲浠ョ敤鏉ョ淮鎶や竴涓祴璇曠敤鐨?CA 銆?</p> <p>鍦?Linux 涓殑緙栬瘧鍜屽畨瑁呮楠よ緝綆鍗?錛?</p> <p>$./config </p> <p>$make </p> <p>$make test </p> <p>$make install </p> <p>鍦?Linux 涓嬶紝澶存枃浠躲佸簱鏂囦歡銆佸伐鍏烽兘宸茶瀹夎鏀懼埌浜嗗悎閫傜殑浣嶇疆銆傚簱鏂囦歡鏄?.a 鎴?.so 鏍煎紡銆?</p> <p>聽 </p> <p>鈥⒙?<strong>浣跨敤 OpenSSL.exe </strong><strong></strong></p> <p>浣跨敤 OpenSSL.exe(Linux 涓彲鎵ц鏂囦歡鍚嶆槸 openssl) 鍙互鍋氬緢澶氬伐浣滐紝鏄竴涓緢濂界殑嫻嬭瘯鎴栬皟璇曞伐鍏楓?</p> <p> <strong>3.1 </strong> <strong>鐗堟湰鍜岀紪璇戝弬鏁?</strong> </p> <p>鏄劇ず鐗堟湰鍜岀紪璇戝弬鏁幫細 >openssl version -a </p> <p> <strong>3.2 </strong> <strong>鏀寔鐨勫瓙鍛戒護銆佸瘑鐮佺畻娉?</strong> </p> <p>鏌ョ湅鏀寔鐨勫瓙鍛戒護錛?>openssl ? </p> <p>SSL 瀵嗙爜緇勫悎鍒楄〃錛?>openssl ciphers </p> <p> <strong>3.3 </strong> <strong>嫻嬭瘯瀵嗙爜綆楁硶閫熷害 </strong> </p> <p>嫻嬭瘯鎵鏈夌畻娉曢熷害錛?>openssl speed </p> <p>嫻嬭瘯 RSA 閫熷害錛?>openssl speed rsa </p> <p>嫻嬭瘯 DES 閫熷害錛?>openssl speed des </p> <p> <strong>3.4 RSA </strong> <strong>瀵嗛挜鎿嶄綔 </strong> </p> <p>浜х敓 RSA 瀵嗛挜瀵癸細 >openssl genrsa -out 1.key 1024 </p> <p>鍙栧嚭 RSA 鍏挜錛?>openssl rsa -in 1.key -pubout -out 1.pubkey </p> <p> <strong>3.5 </strong> <strong>鍔犲瘑鏂囦歡 </strong> </p> <p>鍔犲瘑鏂囦歡錛?>openssl enc -e -rc4 -in 1.key -out 1.key.enc </p> <p>瑙e瘑鏂囦歡錛?>openssl enc -d -rc4 -in 1.key.enc -out 1.key.dec </p> <p> <strong>3.6 </strong> <strong>璁$畻 Hash 鍊?</strong> </p> <p>璁$畻鏂囦歡鐨?MD5 鍊鹼細 >openssl md5 < 1.key </p> <p>璁$畻鏂囦歡鐨?SHA1 鍊鹼細 >openssl sha1 < 1.key </p> <p>聽 </p> <p>鈥⒙?<strong>綆楁硶緙栫▼ API </strong></p> <p>OpenSSL 涓敮鎸佷紬澶氱殑瀵嗙爜綆楁硶錛屽茍鎻愪緵浜嗗緢濂界殑灝佽鍜屾帴鍙c傚瘑鐮佺畻娉曚富瑕佸垎涓哄涓嬪嚑綾伙細瀵圭О綆楁硶銆佸叕閽ョ畻娉曘佹暎鍒楃畻娉曘侀殢鏈烘暟浜х敓綆楁硶絳夈?</p> <p>OpenSSL 鐨勭洰鏍囨槸瀹炵幇瀹夊叏鍗忚銆傚叾涓浉鍏沖崗璁拰鏍囧噯鍖呮嫭錛?SSL/TLS 銆?PKCS#1 銆?PCKS#10 銆?X.509 銆?PEM 銆?OCSP 絳夈?</p> <p> <strong>4.1 </strong> <strong>瀵圭О綆楁硶鎺ュ彛 </strong> </p> <p>OpenSSL 涓疄鐜扮殑瀵圭О綆楁硶澶錛屼婦涓変釜渚嬪瓙錛?DES 銆?AES 銆?RC4 銆?</p> <p> <strong>4.1.1 </strong> <strong>DES </strong> </p> <p>DES 鍔犲瘑綆楁硶鏄垎緇勭畻娉曘?DES 鐨勫熀鏈搷浣滄槸鎶?64 姣旂壒鏄庢枃鍦?56 姣旂壒瀵嗛挜鎸囧紩涓嬪姞瀵嗘垚 64 姣旂壒瀵嗘枃銆傚湪瀹為檯浣跨敤涓妸瀵嗛挜鐪嬩綔 64 姣旂壒鍙互鏇存柟渚褲?</p> <p>DES 錛?IN 錛?KEY 錛?= OUT </p> <p> <strong>(1) DES ECB </strong> <strong>妯″紡 </strong> </p> <p>鍦?OpenSSL 涓?ECB 鎿嶄綔妯″紡瀵瑰簲鐨勫嚱鏁版槸 DES_ecb_encrypt() 錛岃鍑芥暟鎶婁竴涓?8 瀛楄妭鏄庢枃鍒嗙粍 input 鍔犲瘑鎴愪負涓涓?8 瀛楄妭瀵嗘枃鍒嗙粍 output 銆傚弬鏁頒腑瀵嗛挜緇撴瀯 ks 鏄敤鍑芥暟 DES_set_key() 鍑嗗濂界殑錛岃屽瘑閽?key 鏄敤闅忔満鏁扮畻娉曚駭鐢熺殑 64 涓殢鏈烘瘮鐗廣傚弬鏁?enc 鎸囩ず鏄姞瀵嗚繕鏄В瀵嗐傝鍑芥暟姣忔鍙姞瀵嗕竴涓垎緇勶紝鍥犳鐢ㄦ潵鍔犲瘑寰堝鏁版嵁鏃朵笉鏂逛究浣跨敤銆?</p> <p>void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, DES_key_schedule *ks,int enc); </p> <p>int DES_set_key(const_DES_cblock *key,DES_key_schedule *schedule); </p> <p> <strong>(2) DES CBC </strong> <strong>妯″紡 </strong> </p> <p>DES 綆楁硶 CBC 鎿嶄綔妯″紡鍔犺В瀵嗗嚱鏁版槸 DES_ncbc_encrypt() 銆傚弬鏁?length 鎸囩ず杈撳叆瀛楄妭闀垮害銆傚鏋滈暱搴︿笉鏄?8 瀛楄妭鐨勫嶆暟錛屽垯浼氳鐢?0 濉厖鍒?8 瀛楄妭鍊嶆暟銆傚洜姝わ紝杈撳嚭鍙兘姣?length 闀匡紝鑰屼笖蹇呯劧鏄?8 瀛楄妭鐨勫嶆暟銆?</p> <p>void DES_ncbc_encrypt(const unsigned char *input,unsigned char *output, long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc); </p> <p> <strong>(3) DES CFB </strong> <strong>妯″紡 </strong> </p> <p>DES 綆楁硶 CFB 鎿嶄綔妯″紡鍔犺В瀵嗗嚱鏁版槸 DES_cfb_encrypt() 銆傚弬鏁?length 鎸囩ず杈撳叆瀛楄妭闀垮害銆傚弬鏁? numbits 鍒欐寚紺轟簡 CFB 姣忔寰幆鍔犲瘑澶氬皯鏄庢枃姣旂壒錛屼篃鍗沖瘑鏂囧弽棣堢殑姣旂壒鏁扮洰銆?ivec 鏄垵濮嬪悜閲忥紝琚湅鍋氱 0 涓瘑鏂囧垎緇勶紝鏄笉鐢ㄤ繚瀵嗕絾搴旈殢鏈哄彇鍊肩殑 8 涓瓧鑺傘傚鏋滃湪涓嬈′細璇濅腑鏁版璋冪敤 DES_cfb_encrypt() 錛屽垯搴旇璁板繂 ivec 銆傜敱浜? CFB 妯″紡涓瘡嬈?DES 鍩烘湰鎿嶄綔鍙姞瀵?numbits 姣旂壒鏄庢枃錛屽洜姝ゅ鏋?numbits 澶皬鍒欐晥鐜囧お浣庛?</p> <p>void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, long length, DES_key_schedule *schedule, DES_cblock *ivec, int enc); </p> <p>鍙︽湁涓涓?numbit 鏄?64 姣旂壒鐨勭増鏈紝鏃㈤珮鏁堝張娌℃湁濉厖鐨勯夯鐑︼紝鎺ㄨ崘浣跨敤銆?num 涓殑榪斿洖鍊兼寚紺轟簡 ivec 涓殑鐘舵侊紝鏄拰涓嬫璋冪敤琛旀帴鐨勩?</p> <p>void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, long length, DES_key_schedule *schedule, DES_cblock *ivec, int *num, int enc) 錛?</p> <p> <strong>(4) DES OFB </strong> <strong>妯″紡 </strong> </p> <p>OFB 鍜?CFB 綾諱技錛屼篃鏈変袱涓嚱鏁幫紝鐢ㄦ硶涓鏍楓?</p> <p>void DES_ofb_encrypt(const unsigned char *in,unsigned char *out,int numbits,long length,DES_key_schedule *schedule,DES_cblock *ivec); </p> <p>void DES_ofb64_encrypt(const unsigned char *in,unsigned char *out,long length,DES_key_schedule *schedule,DES_cblock *ivec,int *num); </p> <p> <strong>(5) DES </strong> <strong>鍑芥暟紺轟緥紼嬪簭 </strong> </p> <p>瑙侀檮浠?A.1 銆?</p> <p> <strong>4.1.2 A </strong> <strong>ES </strong> </p> <p>AES 鍔犲瘑綆楁硶鏄垎緇勭畻娉曘傚吀鍨嬪弬鏁扮殑 AES 鐨勫熀鏈搷浣滄槸鎶?128 姣旂壒鏄庢枃鍦?128 姣旂壒瀵嗛挜鎸囧紩涓嬪姞瀵嗘垚 128 姣旂壒瀵嗘枃銆?</p> <p>AES 錛?IN 錛?KEY 錛?= OUT </p> <p>OpenSSL 涓叧浜?AES 鐨勫嚱鏁板悕鍜屽弬鏁版帴鍙e拰 DES 鐨勯浄鍚屻傜浉鍏沖嚱鏁板悕濡備笅 ( 鍙傛暟鐣?) 銆?</p> <p>int AES_set_encrypt_key(); </p> <p>int AES_set_decrypt_key(); </p> <p>void AES_ecb_encrypt(); </p> <p>void AES_cbc_encrypt(); </p> <p>void AES_cfb128_encrypt(); </p> <p>void AES_ofb128_encrypt(); </p> <p>AES 紺轟緥紼嬪簭瑙侀檮浠?A.2 銆?</p> <p> <strong>4.1.3 </strong> <strong>RC4 </strong> </p> <p>RC4 瀵嗙爜綆楁硶鏄祦綆楁硶錛屼篃鍙簭鍒楃畻娉曘傛祦綆楁硶鏄粠瀵嗛挜浣滀負縐嶅瓙浜х敓瀵嗛挜嫻侊紝鏄庢枃姣旂壒嫻佸拰瀵嗛挜嫻佸紓鎴栧嵆鍔犲瘑銆?RC4 綆楁硶鐢變簬綆楁硶綆媧侊紝閫熷害鏋佸揩錛屽瘑閽ラ暱搴﹀彲鍙橈紝鑰屼笖涔熸病鏈夊~鍏呯殑楹葷儲錛屽洜姝ゅ湪寰堝鍦哄悎鍊煎緱澶у姏鎺ㄨ崘銆?</p> <p>OpenSSL 涓?RC4 綆楁硶鏈変袱涓嚱鏁?: RC4_set_key() 璁劇疆瀵嗛挜錛?RC4() 鍔犺В瀵嗐傚彲浠ユ妸 RC4 鐪嬩綔寮傛垨錛屽洜姝ゅ姞瀵嗕袱嬈″嵆瑙e瘑銆?</p> <p>void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); </p> <p>void RC4(RC4_KEY *key, unsigned long len, const unsigned char *indata, unsigned char *outdata); </p> <p>RC4 紺轟緥紼嬪簭瑙侀檮浠?A.3 銆?</p> <p>渚嬪瓙 A.3.(1) 鏄埄鐢?OpenSSL 鍔ㄦ佸簱鍑芥暟銆備緥瀛?A.3.(2) 鏄妸 RC4 鐨勫疄鐜頒唬鐮佷粠 OpenSSL 涓垎紱誨嚭鏉ョ殑銆備緥瀛?A.3.(3) 鏄彟涓涓紨紺哄疄鐜般?</p> <p> <strong>4.2 </strong> <strong>鍏挜綆楁硶 </strong> <strong> </strong> </p> <p>OpenSSL 涓疄鐜頒簡 RSA 銆?DSA 銆?ECDSA 絳夊叕閽ョ畻娉曘?</p> <p> <strong>4.2.1 </strong> <strong>RSA </strong> </p> <p>RSA 鏄垎緇勭畻娉曪紝鍏稿瀷鐨勫瘑閽ユā闀垮害 1024 姣旂壒鏃訛紝鍒嗙粍鍗蟲槸 1024 姣旂壒錛屽嵆 128 瀛楄妭銆?</p> <p> <strong>(1) RSA </strong> <strong>瀵嗛挜 </strong> </p> <p>RSA 瀵嗛挜浜х敓鍑芥暟 RSA_generate_key() 錛岄渶瑕佹寚瀹氭ā闀挎瘮鐗規暟 bits 鍜屽叕閽ユ寚鏁?e 銆傚彟澶栦袱涓弬鏁頒負 NULL 鍗沖彲銆?</p> <p>RSA * RSA_generate_key(int bits, unsigned long e, void (*callback) (int,int,void *),void *cb_arg); </p> <p>濡傛灉浠庢枃浠朵腑璇誨彇瀵嗛挜錛屽彲浣跨敤鍑芥暟 PEM_read_bio_PrivateKey()/ PEM_read_bio_PUBKEY(); EVP_PKEY 涓寘鍚竴涓?RSA 緇撴瀯錛屽彲浠ュ紩鐢ㄣ?</p> <p>EVP_PKEY *PEM_read_bio_PrivateKey(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, void *u); </p> <p> <strong>(2) RSA </strong> <strong>鍔犲瘑瑙e瘑 </strong> </p> <p>RSA 鍔犲瘑鍑芥暟 RSA_public_encrypt() 浣跨敤鍏挜閮ㄥ垎錛岃В瀵嗗嚱鏁?RSA_private_decrypt() 浣跨敤縐侀挜銆傚~鍏呮柟寮忓父鐢ㄧ殑鏈変袱縐?RSA_PKCS1_PADDING 鍜?RSA_PKCS1_OAEP_PADDING 銆傚嚭閿欐椂榪斿洖 -1 銆傝緭鍏ュ繀欏繪瘮 RSA 閽ユā闀跨煭鑷沖皯 11 涓瓧鑺傦紙鍦?RSA_PKCS1_PADDING 鏃訛紵錛夈傝緭鍑洪暱搴︾瓑浜?RSA 閽ョ殑妯¢暱銆?</p> <p>int RSA_public_encrypt(int flen, const unsigned char *from,unsigned char *to, RSA *rsa,int padding); </p> <p>int RSA_private_decrypt(int flen, const unsigned char *from,unsigned char *to, RSA *rsa,int padding); </p> <p> <strong>(3) </strong> <strong>絳懼悕鍜岄獙璇?</strong> </p> <p>絳懼悕浣跨敤縐侀挜錛岄獙璇佷嬌鐢ㄥ叕閽ャ?RSA 絳懼悕鏄妸琚緗叉秷鎭殑鏁e垪鍊肩紪鐮佸悗鐢ㄧ閽ュ姞瀵嗭紝鍥犳鍑芥暟涓弬鏁?type 鐢ㄦ潵鎸囩ず鏁e垪鍑芥暟鐨勭被鍨嬶紝涓鑸槸 NID_md5 鎴?NID_sha1 銆傛紜儏鍐典笅榪斿洖 0 銆?</p> <p>int RSA_sign(int type, const unsigned char *m, unsigned int m_length, unsigned char *sigret, unsigned int *siglen, RSA *rsa); </p> <p>int RSA_verify(int type, const unsigned char *m, unsigned int m_length, unsigned char *sigbuf, unsigned int siglen, RSA *rsa); </p> <p> <strong>(4) RSA </strong> <strong>鍑芥暟紺轟緥紼嬪簭 </strong> </p> <p>RSA 紺轟緥紼嬪簭瑙侀檮浠?A.4 銆?</p> <p>渚嬪瓙 A.4.(1) 鏄姞瀵嗚В瀵嗕緥瀛愩備緥瀛?A.4.(2) 鏄鍚嶉獙璇佷緥瀛愩?</p> <p> <strong>4.2.2 </strong> <strong>DSA </strong> </p> <p> <strong> </strong> <strong>錛?TOBE 錛?</strong> </p> <p> <strong>4.2.2 </strong> <strong>ECDSA </strong> </p> <p> <strong>錛?or NOT TOBE 錛?</strong> </p> <p> <strong>4.3 Hash </strong> <strong>綆楁硶 </strong> </p> <p>Hash 綆楁硶涓?MD5 鍜?SHA1 涓や釜渚嬪瓙銆?Hash 綆楁硶閲嶅鎺ユ敹鐢ㄦ埛杈撳叆錛岀洿鍒版渶鍚庝竴嬈$粨鏉熸椂杈撳嚭鏁e垪緇撴灉銆?</p> <p> <strong>4.3.1 </strong> <strong>MD5 </strong> </p> <p>MD5 綆楁硶杈撳嚭鐨勬暎鍒楀兼槸 16 瀛楄妭銆?</p> <p>int MD5_Init(MD5_CTX *c); </p> <p>int MD5_Update(MD5_CTX *c, const void *data, size_t len); </p> <p>int MD5_Final(unsigned char *md, MD5_CTX *c); </p> <p> <strong>4.3.2 </strong> <strong>SHA1 </strong> </p> <p>SHA1 綆楁硶杈撳嚭鐨勬暎鍒楀兼槸 20 瀛楄妭銆?</p> <p>int SHA1_Init(SHA_CTX *c); </p> <p>int SHA1_Update(SHA_CTX *c, const void *data, size_t len); </p> <p>int SHA1_Final(unsigned char *md, SHA_CTX *c); </p> <p> <strong>4.3.3 </strong> <strong>MD5 </strong> <strong>渚嬪瓙 </strong> </p> <p>MD5 紺轟緥紼嬪簭瑙侀檮浠?A.5 銆?</p> <p>md5sum 榪欐槸涓涓疄鐢ㄥ皬宸ュ叿錛屽彲浠ヨ綆椾竴涓枃浠剁殑 MD5 鍊箋?</p> <p> <strong>4.4 </strong> <strong>闅忔満鏁扮畻娉?</strong> </p> <p>闅忔満鎬ф槸瀵嗙爜瀹夊叏鐨勫熀鐭熾備負浜嗕駭鐢熷畨鍏ㄧ殑浼殢鏈烘暟錛屽繀欏繪湁濂界殑闅忔満鍥犵礌浣滀負縐嶅瓙銆?OpenSSL 鍦ㄥ唴閮ㄥ仛浜嗗姫鍔涳紝浣嗘槸浠嶅緩璁湪瀹炵敤闅忔満鏁頒駭鐢熷嚱鏁頒箣鍓嶆坊鍔犻殢鏈哄洜绱犮?</p> <p>鍑芥暟 RAND_add() 鍙互娣誨姞闅忔満鍥犵礌鍒板唴閮ㄧ姸鎬佷腑鍘匯傜劧鍚庯紝鍗沖彲浠ヤ嬌鐢?RAND_bytes() 鑾峰緱闅忔満鏁般?</p> <p>void RAND_add(const void *buf,int num,double entropy); </p> <p>int RAND_bytes(unsigned char *buf,int num); </p> <p>聽 </p> <p>鈥⒙?<strong>SSL </strong><strong>鍗忚緙栫▼ API </strong></p> <p> <strong>5.1 </strong> <strong>瀹㈡埛绔?</strong> </p> <p> <strong>5.2 </strong> <strong>鏈嶅姟鍣ㄧ </strong> </p> <p> <strong>5.3 SSL </strong> <strong>紺轟緥紼嬪簭 </strong> </p> <p>鍙傝 A.6 銆?</p> <p> <strong>聽 </strong> </p> <p>鈥⒙?<strong>CA </strong><strong>鍜岃瘉涔?</strong></p> <p> <strong>6.1 OpenSSL </strong> <strong>涓?CA 鐨勯厤緗?</strong> </p> <p> <strong>6.2 </strong> <strong>閰嶇疆紺轟緥 </strong> </p> <p>鍙傝 A.7.(1) 銆?</p> <p> <strong>6.3 </strong> <strong>璇佷功瑙f瀽 </strong> </p> <p> <strong>6.4 </strong> <strong>瑙f瀽紺轟緥紼嬪簭 </strong> </p> <p>鍙傝 A.7.(2) 銆?</p> <p>聽 </p> <p>鈥⒙?<strong>聽 </strong></p> <p>聽 </p> <p>鈥⒙?<strong>鍙傝冪綉鍧 </strong><strong></strong></p> <p>SSL 3.0 Specification </p> <p> <a >http://www.netscape.com/eng/ssl3/</a> </p> <p>Transp ort Layer Security (tls) Charter </p> <p> <a >http://www.ietf.org/html.charters/tls-charter.html</a> </p> <p>OpenSSL: The Open Source toolkit for SSL/TLS </p> <p> <a >http://www.openssl.org/</a> </p> <p>SSLeay </p> <p> <a >http://www2.psy.uq.edu.au/~ftp/Crypto/</a> </p> <p>OpenSSL 涓枃璁哄潧 </p> <p> <a >http://openssl.cn/</a> </p> <p>Perl </p> <p> <a >http://www.cpan.org/src/README.html</a> </p> <p> <a >http://www.activestate.com/Products/ActivePerl/</a> </p> <p>NASM </p> <p> <a >http://www.perl.com/</a> </p> <p> <a >studio</a> </p> <p> <strong>聽 </strong> </p> <p>鈥⒙?<strong>聽 </strong></p> <p>聽 </p> <p>鈥⒙?<strong>紺轟緥紼嬪簭 </strong></p> <p>娉?: 姝ゅ祵鍏ョ殑鏂囦歡瀵硅薄鍙互琚嫋鏀懼埌紓佺洏鐩綍涓幓銆?</p> <br /> <p>鈥⒙?DES 紺轟緥紼嬪簭 </p> <p>鈥⒙?AES 紺轟緥紼嬪簭 </p> <br /> <p>鈥⒙?RC4 紺轟緥紼嬪簭 </p> <p>錛?1 錛夛紟 錛?2 錛夛紟 錛?3 錛?</p> <p>鈥⒙?RSA 紺轟緥紼嬪簭 </p> <p>錛?1 錛夛紟 錛?2 錛夛紟 </p> <p>鈥⒙?Hash 綆楁硶紺轟緥紼嬪簭 </p> <p>鈥⒙?SSL 紺轟緥紼嬪簭 </p> <p>鈥⒙?CA 閰嶇疆紺轟緥鍜岃瘉涔﹁В鏋愮ず渚嬬▼搴?</p> <p>(1). (2). </p> <p>鈥⒙?聽 </p> <p>鈥⒙?聽 <br /></p> <p>寮曡嚜錛歨ttp://www.cnblogs.com/ahuo/archive/2008/07/30/1256820.html<br /></p> </div> <img src ="http://www.shnenglu.com/msopengl/aggbug/140769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/msopengl/" target="_blank">jemmyLiu</a> 2011-02-28 09:42 <a href="http://www.shnenglu.com/msopengl/archive/2011/02/28/140769.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>感谢您访问我们的网站,您可能还对以下资源感兴趣:</p> <a href="http://www.shnenglu.com/" title="精品视频久久久久">精品视频久久久久</a> <div class="friend-links"> </div> </div> </footer> <a href="http://www.jxhcgd.cn" target="_blank">久久国产综合精品五月天</a>| <a href="http://www.meelin.cn" target="_blank">久久精品国产亚洲AV久</a>| <a href="http://www.km10000.net.cn" target="_blank">色8激情欧美成人久久综合电</a>| <a href="http://www.ssui1.cn" target="_blank">丁香五月网久久综合</a>| <a href="http://www.cn-trip.cn" target="_blank">狠狠综合久久综合88亚洲</a>| <a href="http://www.itewei.cn" target="_blank">久久天天躁狠狠躁夜夜2020</a>| <a href="http://www.ozkz.cn" target="_blank">久久精品18</a>| <a href="http://www.gjvthsj.cn" target="_blank">欧美亚洲国产精品久久</a>| <a href="http://www.jj123.com.cn" target="_blank">97视频久久久</a>| <a href="http://www.ehrmfye.cn" target="_blank">日本WV一本一道久久香蕉</a>| <a href="http://www.mono2018.cn" target="_blank">久久精品国产亚洲AV不卡</a>| <a href="http://www.020rj.cn" target="_blank">国产精品久久久久久一区二区三区</a>| <a href="http://www.uzxin.cn" target="_blank">久久午夜无码鲁丝片</a>| <a href="http://www.millions.net.cn" target="_blank">精品999久久久久久中文字幕</a>| <a href="http://www.guangzb.cn" target="_blank">99久久www免费人成精品</a>| <a href="http://www.lbaak.cn" target="_blank">国产高潮国产高潮久久久91 </a>| <a href="http://www.lyag.cn" target="_blank">亚洲国产成人久久精品影视</a>| <a href="http://www.ferrariwang.cn" target="_blank">久久人人爽人人爽人人AV东京热</a>| <a href="http://www.u6768.cn" target="_blank">韩国三级大全久久网站</a>| <a href="http://www.fifacn.cn" target="_blank">激情伊人五月天久久综合</a>| <a href="http://www.wanrengou.cn" target="_blank">99久久人妻无码精品系列</a>| <a href="http://www.hongyunjp.cn" target="_blank">久久国产精品偷99</a>| <a href="http://www.wbcyn.cn" target="_blank">一本一道久久a久久精品综合</a>| <a href="http://www.danongyao.cn" target="_blank">国产精品久久久久久五月尺</a>| <a href="http://www.rfqaod.cn" target="_blank">亚洲精品国产美女久久久</a>| <a href="http://www.zmcgmih22.cn" target="_blank">久久人爽人人爽人人片AV</a>| <a href="http://www.120o.cn" target="_blank">久久精品国产一区二区三区日韩</a>| <a href="http://www.hbhshj.cn" target="_blank">亚洲国产一成久久精品国产成人综合</a>| <a href="http://www.zaggaa.cn" target="_blank">一本综合久久国产二区</a>| <a href="http://www.xiaoshuocn.cn" target="_blank">久久婷婷五月综合97色直播</a>| <a href="http://www.cqhydpqi.cn" target="_blank">久久精品国产亚洲精品2020</a>| <a href="http://www.eberan.cn" target="_blank">爱做久久久久久</a>| <a href="http://www.my1983.cn" target="_blank">无码人妻久久一区二区三区免费</a>| <a href="http://www.sf789.com.cn" target="_blank">精品无码久久久久久久久久</a>| <a href="http://www.ijesus.com.cn" target="_blank">久久99热这里只有精品国产</a>| <a href="http://www.18xh.cn" target="_blank">国产精品久久久久久搜索</a>| <a href="http://www.tasd.org.cn" target="_blank">日本精品久久久久影院日本</a>| <a href="http://www.3344pltn.cn" target="_blank">久久天天躁狠狠躁夜夜96流白浆</a>| <a href="http://www.geiduan.cn" target="_blank">大香伊人久久精品一区二区 </a>| <a href="http://www.kt813.cn" target="_blank">久久精品国产一区二区三区 </a>| <a href="http://www.renshushu.cn" target="_blank">久久成人国产精品</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>