首页 openssl教程完全版

openssl教程完全版

举报
开通vip

openssl教程完全版Openssl程式設計PAGEPAGE6Openssl程式設計TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc203795749"第一章基础知识PAGEREF_Toc203795749\h8HYPERLINK\l"_Toc203795750"1.1对称算法PAGEREF_Toc203795750\h8HYPERLINK\l"_Toc203795751"1.2摘要算法PAGEREF_Toc203795751\h9HYPERLINK\l"_Toc20...

openssl教程完全版
Openssl程式設計PAGEPAGE6Openssl程式設計TOC\o"1-3"\h\z\uHYPERLINK\l"_Toc203795749"第一章基础知识PAGEREF_Toc203795749\h8HYPERLINK\l"_Toc203795750"1.1对称算法PAGEREF_Toc203795750\h8HYPERLINK\l"_Toc203795751"1.2摘要算法PAGEREF_Toc203795751\h9HYPERLINK\l"_Toc203795752"1.3公钥算法PAGEREF_Toc203795752\h9HYPERLINK\l"_Toc203795753"1.4回调函数PAGEREF_Toc203795753\h11HYPERLINK\l"_Toc203795754"第二章openssl简介PAGEREF_Toc203795754\h13HYPERLINK\l"_Toc203795755"2.1openssl简介PAGEREF_Toc203795755\h13HYPERLINK\l"_Toc203795756"2.2openssl安装PAGEREF_Toc203795756\h13HYPERLINK\l"_Toc203795757"2.2.1linux下的安装PAGEREF_Toc203795757\h13HYPERLINK\l"_Toc203795758"2.2.2windows编译与安装PAGEREF_Toc203795758\h14HYPERLINK\l"_Toc203795759"2.3openssl源代码PAGEREF_Toc203795759\h14HYPERLINK\l"_Toc203795760"2.4openssl学习方法PAGEREF_Toc203795760\h16HYPERLINK\l"_Toc203795761"第三章堆栈PAGEREF_Toc203795761\h17HYPERLINK\l"_Toc203795762"3.1openssl堆栈PAGEREF_Toc203795762\h17HYPERLINK\l"_Toc203795763"3.2数据结构PAGEREF_Toc203795763\h17HYPERLINK\l"_Toc203795764"3.3源码PAGEREF_Toc203795764\h18HYPERLINK\l"_Toc203795765"3.4定义用户自己的堆栈函数PAGEREF_Toc203795765\h18HYPERLINK\l"_Toc203795766"3.5编程示例PAGEREF_Toc203795766\h19HYPERLINK\l"_Toc203795767"第四章哈希 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf PAGEREF_Toc203795767\h21HYPERLINK\l"_Toc203795768"4.1哈希表PAGEREF_Toc203795768\h21HYPERLINK\l"_Toc203795769"4.2哈希表数据结构PAGEREF_Toc203795769\h21HYPERLINK\l"_Toc203795770"4.3函数说明PAGEREF_Toc203795770\h23HYPERLINK\l"_Toc203795771"4.4编程示例PAGEREF_Toc203795771\h25HYPERLINK\l"_Toc203795772"第五章内存分配PAGEREF_Toc203795772\h27HYPERLINK\l"_Toc203795773"5.1openssl内存分配PAGEREF_Toc203795773\h27HYPERLINK\l"_Toc203795774"5.2内存数据结构PAGEREF_Toc203795774\h27HYPERLINK\l"_Toc203795775"5.3主要函数PAGEREF_Toc203795775\h28HYPERLINK\l"_Toc203795776"5.4编程示例PAGEREF_Toc203795776\h29HYPERLINK\l"_Toc203795777"第六章动态模块加载PAGEREF_Toc203795777\h30HYPERLINK\l"_Toc203795778"6.1动态库加载PAGEREF_Toc203795778\h30HYPERLINK\l"_Toc203795779"6.2DSO概述PAGEREF_Toc203795779\h30HYPERLINK\l"_Toc203795780"6.3数据结构PAGEREF_Toc203795780\h31HYPERLINK\l"_Toc203795781"6.4编程示例PAGEREF_Toc203795781\h32HYPERLINK\l"_Toc203795782"第七章抽象IOPAGEREF_Toc203795782\h34HYPERLINK\l"_Toc203795783"7.1openssl抽象IOPAGEREF_Toc203795783\h34HYPERLINK\l"_Toc203795784"7.2数据结构PAGEREF_Toc203795784\h34HYPERLINK\l"_Toc203795785"7.3BIO函数PAGEREF_Toc203795785\h36HYPERLINK\l"_Toc203795786"7.4编程示例PAGEREF_Toc203795786\h36HYPERLINK\l"_Toc203795787"7.4.1membioPAGEREF_Toc203795787\h36HYPERLINK\l"_Toc203795788"7.4.2filebioPAGEREF_Toc203795788\h37HYPERLINK\l"_Toc203795789"7.4.3socketbioPAGEREF_Toc203795789\h38HYPERLINK\l"_Toc203795790"7.4.4mdBIOPAGEREF_Toc203795790\h39HYPERLINK\l"_Toc203795791"7.4.5cipherBIOPAGEREF_Toc203795791\h40HYPERLINK\l"_Toc203795792"7.4.6sslBIOPAGEREF_Toc203795792\h41HYPERLINK\l"_Toc203795793"7.4.7其他示例PAGEREF_Toc203795793\h42HYPERLINK\l"_Toc203795794"第八章配置文件PAGEREF_Toc203795794\h43HYPERLINK\l"_Toc203795795"8.1概述PAGEREF_Toc203795795\h43HYPERLINK\l"_Toc203795796"8.2openssl配置文件读取PAGEREF_Toc203795796\h43HYPERLINK\l"_Toc203795797"8.3主要函数PAGEREF_Toc203795797\h44HYPERLINK\l"_Toc203795798"8.4编程示例PAGEREF_Toc203795798\h44HYPERLINK\l"_Toc203795799"第九章随机数PAGEREF_Toc203795799\h46HYPERLINK\l"_Toc203795800"9.1随机数PAGEREF_Toc203795800\h46HYPERLINK\l"_Toc203795801"9.2openssl随机数数据结构与源码PAGEREF_Toc203795801\h46HYPERLINK\l"_Toc203795802"9.3主要函数PAGEREF_Toc203795802\h48HYPERLINK\l"_Toc203795803"9.4编程示例PAGEREF_Toc203795803\h48HYPERLINK\l"_Toc203795804"第十章文本数据库PAGEREF_Toc203795804\h50HYPERLINK\l"_Toc203795805"10.1概述PAGEREF_Toc203795805\h50HYPERLINK\l"_Toc203795806"10.2数据结构PAGEREF_Toc203795806\h51HYPERLINK\l"_Toc203795807"10.3函数说明PAGEREF_Toc203795807\h51HYPERLINK\l"_Toc203795808"10.4编程示例PAGEREF_Toc203795808\h52HYPERLINK\l"_Toc203795809"第十一章大数PAGEREF_Toc203795809\h54HYPERLINK\l"_Toc203795810"11.1介绍PAGEREF_Toc203795810\h54HYPERLINK\l"_Toc203795811"11.2openssl大数表示PAGEREF_Toc203795811\h54HYPERLINK\l"_Toc203795812"11.3大数函数PAGEREF_Toc203795812\h55HYPERLINK\l"_Toc203795813"11.4使用示例PAGEREF_Toc203795813\h58HYPERLINK\l"_Toc203795814"第十二章BASE64编解码PAGEREF_Toc203795814\h64HYPERLINK\l"_Toc203795815"12.1BASE64编码介绍PAGEREF_Toc203795815\h64HYPERLINK\l"_Toc203795816"12.2BASE64编解码原理PAGEREF_Toc203795816\h64HYPERLINK\l"_Toc203795817"12.3主要函数PAGEREF_Toc203795817\h65HYPERLINK\l"_Toc203795818"12.4编程示例PAGEREF_Toc203795818\h66HYPERLINK\l"_Toc203795819"第十三章ASN1库PAGEREF_Toc203795819\h68HYPERLINK\l"_Toc203795820"13.1ASN1简介PAGEREF_Toc203795820\h68HYPERLINK\l"_Toc203795821"13.2DER编码PAGEREF_Toc203795821\h70HYPERLINK\l"_Toc203795822"13.3ASN1基本类型示例PAGEREF_Toc203795822\h70HYPERLINK\l"_Toc203795823"13.4openssl的ASN.1库PAGEREF_Toc203795823\h73HYPERLINK\l"_Toc203795824"13.5用openssl的ASN.1库DER编解码PAGEREF_Toc203795824\h74HYPERLINK\l"_Toc203795825"13.6Openssl的ASN.1宏PAGEREF_Toc203795825\h74HYPERLINK\l"_Toc203795826"13.7ASN1常用函数PAGEREF_Toc203795826\h75HYPERLINK\l"_Toc203795827"13.8属性证书编码PAGEREF_Toc203795827\h89HYPERLINK\l"_Toc203795828"第十四章错误处理PAGEREF_Toc203795828\h93HYPERLINK\l"_Toc203795829"14.1概述PAGEREF_Toc203795829\h93HYPERLINK\l"_Toc203795830"14.2数据结构PAGEREF_Toc203795830\h93HYPERLINK\l"_Toc203795831"14.3主要函数PAGEREF_Toc203795831\h95HYPERLINK\l"_Toc203795832"14.4编程示例PAGEREF_Toc203795832\h97HYPERLINK\l"_Toc203795833"第十五章摘要与HMACPAGEREF_Toc203795833\h100HYPERLINK\l"_Toc203795834"15.1概述PAGEREF_Toc203795834\h100HYPERLINK\l"_Toc203795835"15.2openssl摘要实现PAGEREF_Toc203795835\h100HYPERLINK\l"_Toc203795836"15.3函数说明PAGEREF_Toc203795836\h101HYPERLINK\l"_Toc203795837"15.4编程示例PAGEREF_Toc203795837\h101HYPERLINK\l"_Toc203795838"15.5HMACPAGEREF_Toc203795838\h103HYPERLINK\l"_Toc203795839"第十六章数据压缩PAGEREF_Toc203795839\h104HYPERLINK\l"_Toc203795840"16.1简介PAGEREF_Toc203795840\h104HYPERLINK\l"_Toc203795841"16.2数据结构PAGEREF_Toc203795841\h104HYPERLINK\l"_Toc203795842"16.3函数说明PAGEREF_Toc203795842\h105HYPERLINK\l"_Toc203795843"16.4openssl中压缩算法协商PAGEREF_Toc203795843\h106HYPERLINK\l"_Toc203795844"16.5编程示例PAGEREF_Toc203795844\h106HYPERLINK\l"_Toc203795845"第十七章RSAPAGEREF_Toc203795845\h107HYPERLINK\l"_Toc203795846"17.1RSA介绍PAGEREF_Toc203795846\h107HYPERLINK\l"_Toc203795847"17.2openssl的RSA实现PAGEREF_Toc203795847\h107HYPERLINK\l"_Toc203795848"17.3RSA签名与验证过程PAGEREF_Toc203795848\h108HYPERLINK\l"_Toc203795849"17.4数据结构PAGEREF_Toc203795849\h109HYPERLINK\l"_Toc203795850"17.4.1RSA_METHODPAGEREF_Toc203795850\h109HYPERLINK\l"_Toc203795851"17.4.2RSAPAGEREF_Toc203795851\h110HYPERLINK\l"_Toc203795852"17.5主要函数PAGEREF_Toc203795852\h110HYPERLINK\l"_Toc203795853"17.6编程示例PAGEREF_Toc203795853\h112HYPERLINK\l"_Toc203795854"17.6.1密钥生成PAGEREF_Toc203795854\h112HYPERLINK\l"_Toc203795855"17.6.2RSA加解密运算PAGEREF_Toc203795855\h113HYPERLINK\l"_Toc203795856"17.6.3签名与验证PAGEREF_Toc203795856\h116HYPERLINK\l"_Toc203795857"第十八章DSAPAGEREF_Toc203795857\h119HYPERLINK\l"_Toc203795858"18.1DSA简介PAGEREF_Toc203795858\h119HYPERLINK\l"_Toc203795859"18.2openssl的DSA实现PAGEREF_Toc203795859\h120HYPERLINK\l"_Toc203795860"18.3DSA数据结构PAGEREF_Toc203795860\h120HYPERLINK\l"_Toc203795861"18.4主要函数PAGEREF_Toc203795861\h121HYPERLINK\l"_Toc203795862"18.5编程示例PAGEREF_Toc203795862\h122HYPERLINK\l"_Toc203795863"18.5.1密钥生成PAGEREF_Toc203795863\h122HYPERLINK\l"_Toc203795864"18.5.2签名与验证PAGEREF_Toc203795864\h124HYPERLINK\l"_Toc203795865"第十九章DHPAGEREF_Toc203795865\h126HYPERLINK\l"_Toc203795866"19.1DH算法介绍PAGEREF_Toc203795866\h126HYPERLINK\l"_Toc203795867"19.2openssl的DH实现PAGEREF_Toc203795867\h127HYPERLINK\l"_Toc203795868"19.3数据结构PAGEREF_Toc203795868\h127HYPERLINK\l"_Toc203795869"19.4主要函数PAGEREF_Toc203795869\h128HYPERLINK\l"_Toc203795870"19.5编程示例PAGEREF_Toc203795870\h129HYPERLINK\l"_Toc203795871"第二十章椭圆曲线PAGEREF_Toc203795871\h132HYPERLINK\l"_Toc203795872"20.1ECC介绍PAGEREF_Toc203795872\h132HYPERLINK\l"_Toc203795873"20.2openssl的ECC实现PAGEREF_Toc203795873\h133HYPERLINK\l"_Toc203795874"20.3主要函数PAGEREF_Toc203795874\h135HYPERLINK\l"_Toc203795875"20.3.1 参数 转速和进给参数表a氧化沟运行参数高温蒸汽处理医疗废物pid参数自整定算法口腔医院集中消毒供应 设置PAGEREF_Toc203795875\h135HYPERLINK\l"_Toc203795876"20.3.2参数获取PAGEREF_Toc203795876\h136HYPERLINK\l"_Toc203795877"20.3.3转化函数PAGEREF_Toc203795877\h137HYPERLINK\l"_Toc203795878"20.3.4其他函数PAGEREF_Toc203795878\h137HYPERLINK\l"_Toc203795879"20.4编程示例PAGEREF_Toc203795879\h139HYPERLINK\l"_Toc203795880"第二十一章EVPPAGEREF_Toc203795880\h143HYPERLINK\l"_Toc203795881"21.1EVP简介PAGEREF_Toc203795881\h143HYPERLINK\l"_Toc203795882"21.2数据结构PAGEREF_Toc203795882\h143HYPERLINK\l"_Toc203795883"21.2.1EVP_PKEYPAGEREF_Toc203795883\h144HYPERLINK\l"_Toc203795884"21.2.2EVP_MDPAGEREF_Toc203795884\h144HYPERLINK\l"_Toc203795885"21.2.3EVP_CIPHERPAGEREF_Toc203795885\h145HYPERLINK\l"_Toc203795886"21.2.4EVP_CIPHER_CTXPAGEREF_Toc203795886\h146HYPERLINK\l"_Toc203795887"21.3源码结构PAGEREF_Toc203795887\h147HYPERLINK\l"_Toc203795888"21.4摘要函数PAGEREF_Toc203795888\h147HYPERLINK\l"_Toc203795889"21.5对称加解密函数PAGEREF_Toc203795889\h148HYPERLINK\l"_Toc203795890"21.6非对称函数PAGEREF_Toc203795890\h149HYPERLINK\l"_Toc203795891"21.7BASE64编解码函数PAGEREF_Toc203795891\h149HYPERLINK\l"_Toc203795892"21.8其他函数PAGEREF_Toc203795892\h150HYPERLINK\l"_Toc203795893"21.9对称加密过程PAGEREF_Toc203795893\h152HYPERLINK\l"_Toc203795894"21.10编程示例PAGEREF_Toc203795894\h152HYPERLINK\l"_Toc203795895"第二十二章PEM格式PAGEREF_Toc203795895\h159HYPERLINK\l"_Toc203795896"22.1PEM概述PAGEREF_Toc203795896\h159HYPERLINK\l"_Toc203795897"22.2openssl的PEM实现PAGEREF_Toc203795897\h160HYPERLINK\l"_Toc203795898"22.3PEM函数PAGEREF_Toc203795898\h161HYPERLINK\l"_Toc203795899"22.4编程示例PAGEREF_Toc203795899\h161HYPERLINK\l"_Toc203795900"第二十三章EnginePAGEREF_Toc203795900\h165HYPERLINK\l"_Toc203795901"23.1Engine概述PAGEREF_Toc203795901\h165HYPERLINK\l"_Toc203795902"23.2Engine支持的原理PAGEREF_Toc203795902\h165HYPERLINK\l"_Toc203795903"23.3Engine数据结构PAGEREF_Toc203795903\h166HYPERLINK\l"_Toc203795904"23.4openssl的Engine源码PAGEREF_Toc203795904\h167HYPERLINK\l"_Toc203795905"23.5Engine函数PAGEREF_Toc203795905\h167HYPERLINK\l"_Toc203795906"23.6实现Engine示例PAGEREF_Toc203795906\h169HYPERLINK\l"_Toc203795907"第二十四章通用数据结构PAGEREF_Toc203795907\h182HYPERLINK\l"_Toc203795908"24.1通用数据结构PAGEREF_Toc203795908\h182HYPERLINK\l"_Toc203795909"24.2X509_ALGORPAGEREF_Toc203795909\h182HYPERLINK\l"_Toc203795910"24.3X509_VALPAGEREF_Toc203795910\h184HYPERLINK\l"_Toc203795911"24.4X509_SIGPAGEREF_Toc203795911\h185HYPERLINK\l"_Toc203795912"24.5X509_NAME_ENTRYPAGEREF_Toc203795912\h186HYPERLINK\l"_Toc203795913"24.6X509_NAMEPAGEREF_Toc203795913\h187HYPERLINK\l"_Toc203795914"24.7X509_EXTENSIONPAGEREF_Toc203795914\h193HYPERLINK\l"_Toc203795915"24.8X509_ATTRIBUTEPAGEREF_Toc203795915\h199HYPERLINK\l"_Toc203795916"24.9GENERAL_NAMEPAGEREF_Toc203795916\h200HYPERLINK\l"_Toc203795917"第二十五章证书申请PAGEREF_Toc203795917\h203HYPERLINK\l"_Toc203795918"25.1证书申请介绍PAGEREF_Toc203795918\h203HYPERLINK\l"_Toc203795919"25.2数据结构PAGEREF_Toc203795919\h203HYPERLINK\l"_Toc203795920"25.3主要函数PAGEREF_Toc203795920\h204HYPERLINK\l"_Toc203795921"25.4编程示例PAGEREF_Toc203795921\h206HYPERLINK\l"_Toc203795922"25.4.1生成证书请求文件PAGEREF_Toc203795922\h206HYPERLINK\l"_Toc203795923"25.4.2解码证书请求文件PAGEREF_Toc203795923\h208HYPERLINK\l"_Toc203795924"第二十六章X509数字证书PAGEREF_Toc203795924\h210HYPERLINK\l"_Toc203795925"26.1X509数字证书PAGEREF_Toc203795925\h210HYPERLINK\l"_Toc203795926"26.2opessl实现PAGEREF_Toc203795926\h210HYPERLINK\l"_Toc203795927"26.3X509数据结构PAGEREF_Toc203795927\h210HYPERLINK\l"_Toc203795928"26.4X509_TRUST与X509_CERT_AUXPAGEREF_Toc203795928\h214HYPERLINK\l"_Toc203795929"26.5X509_PURPOSEPAGEREF_Toc203795929\h215HYPERLINK\l"_Toc203795930"26.6主要函数PAGEREF_Toc203795930\h218HYPERLINK\l"_Toc203795931"26.7证书验证PAGEREF_Toc203795931\h221HYPERLINK\l"_Toc203795932"26.7.1证书验证项PAGEREF_Toc203795932\h221HYPERLINK\l"_Toc203795933"26.7.2Openssl中的证书验证PAGEREF_Toc203795933\h221HYPERLINK\l"_Toc203795934"第二十七章OCSPPAGEREF_Toc203795934\h222HYPERLINK\l"_Toc203795935"27.1概述PAGEREF_Toc203795935\h222HYPERLINK\l"_Toc203795936"27.2openssl实现PAGEREF_Toc203795936\h222HYPERLINK\l"_Toc203795937"27.3主要函数PAGEREF_Toc203795937\h222HYPERLINK\l"_Toc203795938"27.4编程示例PAGEREF_Toc203795938\h227HYPERLINK\l"_Toc203795939"第二十八章CRLPAGEREF_Toc203795939\h228HYPERLINK\l"_Toc203795940"28.1CRL介绍PAGEREF_Toc203795940\h228HYPERLINK\l"_Toc203795941"28.2数据结构PAGEREF_Toc203795941\h228HYPERLINK\l"_Toc203795942"28.3CRL函数PAGEREF_Toc203795942\h230HYPERLINK\l"_Toc203795943"28.4编程示例PAGEREF_Toc203795943\h231HYPERLINK\l"_Toc203795944"第二十九章PKCS7PAGEREF_Toc203795944\h233HYPERLINK\l"_Toc203795945"29.1概述PAGEREF_Toc203795945\h233HYPERLINK\l"_Toc203795946"29.2数据结构PAGEREF_Toc203795946\h233HYPERLINK\l"_Toc203795947"29.3函数PAGEREF_Toc203795947\h234HYPERLINK\l"_Toc203795948"29.4消息编解码PAGEREF_Toc203795948\h235HYPERLINK\l"_Toc203795949"29.4.1dataPAGEREF_Toc203795949\h235HYPERLINK\l"_Toc203795950"29.4.2signeddataPAGEREF_Toc203795950\h236HYPERLINK\l"_Toc203795951"29.4.3envelopedPAGEREF_Toc203795951\h237HYPERLINK\l"_Toc203795952"29.4.4signed_and_envelopedPAGEREF_Toc203795952\h238HYPERLINK\l"_Toc203795953"29.4.5digestPAGEREF_Toc203795953\h238HYPERLINK\l"_Toc203795954"29.4.6encryptedPAGEREF_Toc203795954\h239HYPERLINK\l"_Toc203795955"29.4.7读取PEMPAGEREF_Toc203795955\h239HYPERLINK\l"_Toc203795956"29.4.8解码pkcs7PAGEREF_Toc203795956\h240HYPERLINK\l"_Toc203795957"第三十章PKCS12PAGEREF_Toc203795957\h241HYPERLINK\l"_Toc203795958"30.1概述PAGEREF_Toc203795958\h241HYPERLINK\l"_Toc203795959"30.2openss实现PAGEREF_Toc203795959\h241HYPERLINK\l"_Toc203795960"30.3数据结构PAGEREF_Toc203795960\h242HYPERLINK\l"_Toc203795961"30.4函数PAGEREF_Toc203795961\h243HYPERLINK\l"_Toc203795962"30.5编程示例PAGEREF_Toc203795962\h245HYPERLINK\l"_Toc203795963"第三十一章SSL实现PAGEREF_Toc203795963\h254HYPERLINK\l"_Toc203795964"31.1概述PAGEREF_Toc203795964\h254HYPERLINK\l"_Toc203795965"31.2openssl实现PAGEREF_Toc203795965\h254HYPERLINK\l"_Toc203795966"31.3建立SSL测试环境PAGEREF_Toc203795966\h254HYPERLINK\l"_Toc203795967"31.4数据结构PAGEREF_Toc203795967\h256HYPERLINK\l"_Toc203795968"31.5加密套件PAGEREF_Toc203795968\h256HYPERLINK\l"_Toc203795969"31.6密钥信息PAGEREF_Toc203795969\h257HYPERLINK\l"_Toc203795970"31.7SESSIONPAGEREF_Toc203795970\h258HYPERLINK\l"_Toc203795971"31.8多线程支持PAGEREF_Toc203795971\h258HYPERLINK\l"_Toc203795972"31.9编程示例PAGEREF_Toc203795972\h259HYPERLINK\l"_Toc203795973"31.10函数PAGEREF_Toc203795973\h270HYPERLINK\l"_Toc203795974"第三十二章Openssl命令PAGEREF_Toc203795974\h272HYPERLINK\l"_Toc203795975"32.1概述PAGEREF_Toc203795975\h272HYPERLINK\l"_Toc203795976"32.2asn1parsePAGEREF_Toc203795976\h272HYPERLINK\l"_Toc203795977"32.3dgstPAGEREF_Toc203795977\h274HYPERLINK\l"_Toc203795978"32.4gendhPAGEREF_Toc203795978\h275HYPERLINK\l"_Toc203795979"32.5passwdPAGEREF_Toc203795979\h276HYPERLINK\l"_Toc203795980"32.6randPAGEREF_Toc203795980\h276HYPERLINK\l"_Toc203795981"32.7genrsaPAGEREF_Toc203795981\h277HYPERLINK\l"_Toc203795982"32.8reqPAGEREF_Toc203795982\h278HYPERLINK\l"_Toc203795983"32.9x509PAGEREF_Toc203795983\h280HYPERLINK\l"_Toc203795984"32.10versionPAGEREF_Toc203795984\h283HYPERLINK\l"_Toc203795985"32.11speedPAGEREF_Toc203795985\h283HYPERLINK\l"_Toc203795986"32.12sess_idPAGEREF_Toc203795986\h284HYPERLINK\l"_Toc203795987"32.13s_serverPAGEREF_Toc203795987\h284HYPERLINK\l"_Toc203795988"32.14s_clientPAGEREF_Toc203795988\h286HYPERLINK\l"_Toc203795989"32.15rsaPAGEREF_Toc203795989\h288HYPERLINK\l"_Toc203795990"32.16pkcs7PAGEREF_Toc203795990\h289HYPERLINK\l"_Toc203795991"32.17dsaparamPAGEREF_Toc203795991\h290HYPERLINK\l"_Toc203795992"32.18gendsaPAGEREF_Toc203795992\h291HYPERLINK\l"_Toc203795993"32.19encPAGEREF_Toc203795993\h291HYPERLINK\l"_Toc203795994"32.20ciphersPAGEREF_Toc203795994\h292HYPERLINK\l"_Toc203795995"32.21CAPAGEREF_Toc203795995\h293HYPERLINK\l"_Toc203795996"32.22verifyPAGEREF_Toc203795996\h296HYPERLINK\l"_Toc203795997"32.23rsatulPAGEREF_Toc203795997\h297HYPERLINK\l"_Toc203795998"32.24crlPAGEREF_Toc203795998\h299HYPERLINK\l"_Toc203795999"32.25crl2pkcs7PAGEREF_Toc203795999\h300HYPERLINK\l"_Toc203796000"32.26errstrPAGEREF_Toc203796000\h300HYPERLINK\l"_Toc203796001"32.27ocspPAGEREF_Toc203796001\h301HYPERLINK\l"_Toc203796002"32.28pkcs12PAGEREF_Toc203796002\h304HYPERLINK\l"_Toc203796003"32.29pkcs8PAGEREF_Toc203796003\h306HYPERLINK\l"_Toc203796004"32.30s_timePAGEREF_Toc203796004\h307HYPERLINK\l"_Toc203796005"32.31dhparam和dhPAGEREF_Toc203796005\h308HYPERLINK\l"_Toc203796006"32.32ecparamPAGEREF_Toc203796006\h309HYPERLINK\l"_Toc203796007"32.33ecPAGEREF_Toc203796007\h310HYPERLINK\l"_Toc203796008"32.34dsaPAGEREF_Toc203796008\h311HYPERLINK\l"_Toc203796009"32.35nseqPAGEREF_Toc203796009\h312HYPERLINK\l"_Toc203796010"32.36primePAGEREF_Toc203796010\h313HYPERLINK\l"_Toc203796011"32.37smimePAGEREF_Toc203796011\h313第一章基礎知識1.1對稱演算法對稱演算法使用一個金鑰。給定一個明文和一個金鑰,加密產生密文,其長度和明文大致相同。解密時,使用讀金鑰與加密金鑰相同。對稱演算法主要有四種加密模式:(1)電子密碼本模式 ElectronicCodeBook(ECB)這種模式是最早採用和最簡單的模式,它將加密的資料分成若干組,每組的大小跟加密金鑰長度相同,然後每組都用相同的金鑰進行加密。其缺點是:電子編碼薄模式用一個金鑰加密消息的所有塊,如果原消息中重複明文塊,則加密消息中的相應密文塊也會重複,因此,電子編碼薄模式適於加密小消息。(2)加密塊鏈模式CipherBlockChaining(CBC)CBC模式的加密首先也是將明文分成固定長度的塊,然後將前面一個加密塊輸出的密文與下一個要加密的明文塊進行異或操作,將計算結果再用金鑰進行加密得到密文。第一明文塊加密的時候,因為前面沒有加密的密文,所以需要一個初始化向量。跟ECB方式不一樣,通過連接關係,使得密文跟明文不再是一一對應的關係,破解起來更困難,而且克服了只要簡單調換密文塊可能達到目的的攻擊。(3)加密回饋模式         CipherFeedbackMode(CFB)面向字元的應用程式的加密要使用流加密法,可以使用加密回饋模式。在此模式下,資料用更小的單元加密,如可以是8位,這個長度小於定義的塊長(通常是64位)。其加密步驟是:a)使用64位的初始化向量。初始化向量放在移位暫存器中,在第一步加密,產生相應的64位初始化密文;b)始化向量最左邊的8位與明文前8位進行異或運算,產生密文第一部分(假設為c),然後將c傳輸到接收方;c)向量的位(即初始化向量所在的移位暫存器內容)左移8位元,使移位暫存器最右邊的8位元為不可預測的資料,在其中填入c的內容;d)第1-3步,直到加密所有的明文單元。解密過程相反4)輸出回饋模式         OutputFeedbackMode(OFB)輸出回饋模式與CFB相似,惟一差別是,CFB中密文填入加密過程下一階段,而在OFB中,初始化向量加密過程的輸入填入加密過程下一階段。1.2摘要演算法摘要演算法是一種能產生特殊輸出格式的演算法,這種演算法的特點是:無論使用者輸入什麼長度的原始資料,經過計算後輸出的密文都是固定長度的,這種演算法的原理是根據一定的運算規則對原資料進行某種形式的提取,這種提取就是摘要,被摘要的資料內容與原資料有密切聯繫,只要原資料稍有改變,輸出的“摘要”便完全不同,因此,基於這種原理的演算法便能對資料完整性提供較為健全的保障。但是,由於輸出的密文是提取原資料經過處理的定長值,所以它已經不能還原為原資料,即消息摘要演算法是不可逆的,理論上無法通過反向運算取得原資料內容,因此它通常只能被用來做資料完整性驗證。如今常用的“消息摘要”演算法經歷了多年驗證發展而保留下來的演算法已經不多,這其中包括MD2、MD4、MD5、SHA、SHA-1/256/383/512等。常用的摘要演算法主要有MD5和SHA1。D5的輸出結果為16位元組,sha1的輸出結果為20位元組。1.3公開金鑰演算法在公開金鑰密碼系統中,加密和解密使用的是不同的金鑰,這兩個金鑰之間存在著相互依存關係:即用其中任一個金鑰加密的資訊只能用另一個金鑰進行解密。這使得通信雙方無需事先交換金鑰就可進行保密通信。其中加密金鑰和演算法是對外公開的,人人都可以通過這個金鑰加密檔然後發給收信者,這個加密金鑰又稱為公開金鑰;而收信者收到加密檔後,它可以使用他的解密金鑰解密,這個金鑰是由他自己私人掌管的,並不需要分發,因此又成稱為私密金鑰,這就解決了金鑰分發的問題。主要的公開金鑰演算法有:RSA、DSA、DH和ECC。(1)RSA演算法當前最著名、應用最廣泛的公開金鑰系統RSA是在1978年,由美國麻省理工學院(MIT)的Rivest、Shamir和Adleman在題為《獲得數位簽章和公開鑰密碼系統的方法》的論文中提出的。它是一個基於數論的非對稱(公開鑰)密碼體制,是一種區塊編碼器體制。其名稱來自於三個發明者的姓名首字母。它的安全性是基於大整數素因數分解的困難性,而大整數因數分解問題是數學上的著名難題,至今沒有有效的方法予以解決,因此可以確保RSA演算法的安全性。RSA系統是公開金鑰系統的最具有典型意義的方法,大多數使用公開金鑰密碼進行加密和數位簽章的產品和標準使用的都是RSA演算法。RSA演算法是第一個既能用於資料加密也能用於數位簽章的演算法,因此它為公用網絡上資訊的加密和鑒別提供了一種基本的方法。它通常是先生成一對RSA金鑰,其中之一是保密金鑰,由用戶保存;另一個為公開金鑰,可對外公開,甚至可在網路服務器中註冊,人們用公開金鑰加密檔發送給個人,個人就可以用私密金鑰解密接受。為提高保密強度,RSA金鑰至少為500位長,一般推薦使用1024位。RSA演算法是R.Rivest、A.Shamir和L.Adleman于1977年在美國麻省理工學院開發,於1978年首次公佈。RSA公開金鑰密碼演算法是目前網路上進行保密通信和數位簽章的最有效的安全演算法之一。RSA演算法的安全性基於數論中大素數分解的困難性,所以,RSA需採用足夠大的整數。因數分解越困難,密碼就越難以破譯,加密強度就越高。 其演算法如下:選擇兩質數p、q計算n=p*q計算n的歐拉函數Φ(n)=(p-1)(q-1)選擇整數e,使e與Φ(n)互質,且1
本文档为【openssl教程完全版】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
香香
暂无简介~
格式:doc
大小:1MB
软件:Word
页数:653
分类:
上传时间:2022-04-12
浏览量:5