openssl简易文档

一:编译

前置工作:

1.下载openssl.网址:http://www.openssl.org/source/ 
2.解压缩.

3.下载activeperl,并安装.

编译: 
用vs2005编译,编译之前要先根据配置生成makefile,具体为下面a,b,c三步:

a.C:/OpenSSL/openssl-0.9.8>Perl Configure VC-WIN32 
b.C:/OpenSSL/openssl1-0.9.8>ms/do_ms.bat 
c.C:/OpenSSL/openssl-0.9.8>nmake -f ms/ntdll.mak

编译选项:

我们必须在生成makefile前使得openssl得到正确配置,方法就是在Perl Configure VC-WIN32命令行加入编译选项,具体为:Perl Configure VC-WIN32 XXX,其中XXX为下列三大类

全局选项

第一类是全局性选项:

zlib 
zlib-dynamic 
no-zlib使用静态的zlib压缩库、使用动态的zlib压缩库、不使用zlib压缩功能。

threads 
no-threads是否编译支持多线程的库。默认支持。

shared 
no-shared是否生成动态连接库。(重点)

enable-sse2 
no-sse2启用/禁用SSE2指令集加速。如果你的CPU支持SSE2指令集,就可以打开,否则就要关闭。

gmp                                                               
no-gmp启用/禁用GMP库

rfc3779 
no-rfc3779启用/禁用实现X509v3证书的IP地址扩展

krb5 
no-krb5启用/禁用 Kerberos 5 支持

ssl 
no-ssl 
ssl2 
ssl3 
no-ssl2 
no-ssl3 
tls 
no-tls 启用/禁用 SSL(包含了SSL2/SSL3) TLS 协议支持。

算法选项

可选的目录如下:

no-md2,no-md4,no-mdc2,no-ripemd这些都是摘要算法,含义一目了然。

no-des,no-rc2,no-rc4,no-rc5,no-idea,no-bf,no-cast,no-camellia这些都是对称加密算法,含义一目了然。"bf"是"Blowfish"的意思。

no-ec,no-dsa,no-ecdsa,no-dh,no-ecdh这些都是不对称加密算法,含义一目了然。

no-comp数据压缩算法。因为目前实际上并没有压缩算法,所以只是定义了一些空接口。

no-store对象存储功能。更多细节可以查看 crypto/store/README 文件。

编译器选项(略)

编译完成:

成功编译以后,会在编译的当前目录下生成一个目录:out32dll。进入此目录之后,里面的libeay32.lib,ssleay32.lib为lib文件,如果前面的编译选项选择了shared,那么还会出现两个动态库文件:libeay32.dll,ssleay32.dll。至此,编译成功。

二.应用:

命令行应用:(略)

Api应用:

要想在自己的代码里用openssl的api,则必须要有相应的openssl的头文件和库文件,头文件的路径是编译目录的include子目录,库的目录是编译目录的out32dll子目录,当然,你可以将它们复制到任何你觉得方便的地方。最终,只需要在自己的代码开头引入openssl的头文件即可。对于win32平台,就是:

#include

#include

#include

#include

……

#pragma comment(lib, "libeay32")

#pragma comment(lib, "ssleay32")

……

Openssl网络应用的一般性描述:

在传统的套接字程序中,我们需要一系列的操作,最终建立了一个连接。Ssl协议是一个介于传输层和应用层之间的一个协议,这就要求在传统的套接字建立之后不能直接进行通信,必须再封装一层ssl协议。基于openssl的网络应用分为客户端和服务器端两个方面,以下将分别论述:

1.客户端

SSL_CTX* ctx;

SSL*     ssl;

X509*    server_cert;

SSL_METHOD *meth;

加载算法列表,服务器会根据客户端和服务器的算法列表简单协商

SSLeay_add_ssl_algorithms();

如果是客户端,以下函数是必须要调用的,它包含了在ssl握手过程中的回调函数

meth = SSLv2_client_method();

加载错误字符串

SSL_load_error_strings();

初始化一个新的SSL_CTX,SSL_CTX是一个ssl连接的上下文,它包含了一个ssl连接必须的函数,变量。传入的参数就是之前初始化好的客户端方法,在服务器端就是服务器端方法。

ctx = SSL_CTX_new(meth); 

加载本地证书,用于验证服务器的证书合法性,真实性。实际上这些本地证书一般就是ca的根证书,在我们的应用中我们把证书称作伪证书,这里的本地证书就是我们的证书服务器签发的伪证书,在以下例子中我们知道是cacert1.pem。

int re = SSL_CTX_load_verify_locations(ctx,"cacert.pem",".");

如果需要验证客户端,那么以下函数的调用是必须的,将来在握手的过程中客户端要将通过下面函数加载的证书回传给服务器,服务器进行验证。

SSL_CTX_use_certificate_file(ctx, "testres.pem", SSL_FILETYPE_PEM)

如果我们要实现自定义的验证的话,那么以下这个函数是必须的,它设置了验证证书的回调函数verify_callback,在这个叫做verify_callback的函数的实现中,我们可以实现自定义的证书验证,当然也可以清除掉前面的验证结果,从而设置我们自己的结果,以便握手返回后我们的主程序根据不同的设置结果采取不同的策略。结果码定义在x509_vfy.h文件中,我们可以在系统定义的结果码范围之外定义自己的结果码。如果不需要自定义的验证逻辑,直接将最后一个参数赋空即可。

SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER|SSL_VERIFY_CLIENT_ONCE,verify_callback);

传统的BSD套接字或windows套接字

socket();

connect();

初始化一个新的SSL套接字,参数是一个ssl的上下文,之后所有的读写工作将在这个ssl上展开。

ssl = SSL_new(ctx);

封装了传统的套接字

SSL_set_fd (ssl, sd);

开始ssl握手。注意,前面的标准connect只是建立了标准的tcp连接,这里的connect才是ssl的连接,内部也要进行握手,握手过程中要验证服务器发来的证书,然后经过标准验证程序以后根据我们自定义的那么回调函数进行验证。所以在这个connect被调用之前,不要指望任何数据通信是安全的,结论是,真正的数据通信必须在这个函数之后进行。

err = SSL_connect (ssl);

得到验证结果,根据结果不同采取不同的行为。

int res = SSL_get_verify_result(ssl);

switch(res)

{

}

如果上面的验证通过,之后就可以用SSL_read,SSL_write进行数据通信了,此后数据就是安全的了。

2.服务器端:

前置工作和客户端一样,除了以下的调用,这里我们必须初始化为服务器的方法。

meth = SSLv23_server_method();

ctx = SSL_CTX_new (meth);

如果需要验证客户端,那么下面的调用是必须的,默认不对客户端进行验证。

SSL_CTX_set_verify(ctx,SSL_VERIFY_PEER,verify_callback);

加载服务器证书,将来在握手过程中,此证书要发送到客户端进行验证。

SSL_CTX_use_certificate_file(ctx, "testres.pem", SSL_FILETYPE_PEM)

加载本地私钥文件

SSL_CTX_use_PrivateKey_file(ctx, "testkey.pem", SSL_FILETYPE_PEM)

验证本地私钥和本地证书的匹配。

SSL_CTX_check_private_key(ctx))

以下同客户端

socket()

bind()

listen()

accept()

ssl = SSL_new (ctx);

SSL_set_fd (ssl, newsd);

这里就是accept了,对应于客户端的connect

err = SSL_accept (ssl);

如果需要客户端验证,这里得到客户端的证书

client_cert = SSL_get_peer_certificate (ssl);

之后就是SSL_read,SSL_write 安全通信了。

关键Openssl的api:

头:#include

参数:void

返回值:SSL_METHOD结构

说明:此函数返回一个服务器的方法集结构,应用SSLv2 协议

SSL_METHOD *SSLv2_server_method(void)

头:#include

参数:void

返回值:SSL_METHOD结构

说明:此函数返回一个客户端的方法集结构,应用SSLv2 协议

SSL_METHOD* SSLv2_client_method (void)

头:#include

参数:SSL_METHOD结构体,可由SSLv2_server_method或者SSLv2_client_method返回,取决于本端是服务器还是客户端

返回值:SSL_CTX结构

说明:此函数返回一个SSL_CTX结构,这个结构构成了ssl安全通信的基础上下文。

SSL_CTX* SSL_CTX_new (SSL_METHOD*)

头:#include

参数:第一个参数是当前的CTX 指针,第二个是验证方式,如果是要验证对方的话,就使用 SSL_VERIFY_PEER。不需要的话,使用SSL_VERIFY_NONE.一般情况下,客户端需要验证对方,而服务器不需要。第三个参数是处理 验证的回调函数,如果没有特殊的需要,使用空指针就可以了。

返回值:void

说明:此函数设置证书验证的方式

void SSL_CTX_set_verify (SSL_CTX*  , int , int* (int, X509_STORE_CTX*) )

头:#include

参数:第一个参数是SSL_CTX指针,第二个参数是证书文件的名称,第三个参数是证书文件的路径

返回值:void

说明:此函数加载验证证书,一般为CA的证书

void SSL_CTX_load_verify_locations(SSL_CTX*, const char* , const char*)

头:#include

参数:第一个参数是SSL_CTX指针,第二个参数是证书文件的名称,第三个参数是证书类型

返回值:失败返回-1

说明:此函数加载本地的证书

int SSL_CTX_use_certificate_file(SSL_CTX *ctx, const char *file, int type)

头:#include

参数:第一个参数是SSL_CTX指针,第二个参数是私钥文件的名称,第三个参数是私钥文件的类型

返回值:失败返回-1

说明:此函数加载自己的私钥

int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type)

头:#include

参数:SSL_CTX指针

返回值:一个SSL结构,将来通信就是在这个ssl上进行的

说明:此函数申请一个SSL 套节字

SSL* SSL_new (SSL_CTX*)

头:#include

参数:第一个参数为SSL指针,第二个参数为套接字句柄

返回值:绑定成功返回 1, 失败返回0

说明:此函数榜定一个只读套接字

int SSL_set_rfd (SSL*,int)

头:#include

参数:第一个参数为SSL指针,第二个参数为套接字句柄

返回值:绑定成功返回 1, 失败返回0

说明:此函数绑定一个只写套接字

int SSL_set_wfd (SSL*,int)

头:#include

参数:第一个参数为SSL指针,第二个参数为套接字句柄

返回值:绑定成功返回 1, 失败返回0

说明:此函数绑定一个读写套接字

int SSL_set_fd (SSL*,int)

头:#include

参数:SSL指针

返回值:失败返回-1

说明:此函数开始SSL 握手的动作,对于服务器端就是SSL_accept了

int SSL_connect (SSL*)

头:#include

参数:第一个参数是SSL指针,第二个参数是要写缓冲区,第三个参数是写入长度

返回值:同标准write

说明:此函数将缓冲区写入套接字。

int SSL_write (SSL *ssl, char *buf, int num )

头:#include

参数:第一个参数是SSL指针,第二个参数是读入缓冲区,第三个参数是读入长度

返回值:同标准read

说明:此函数将信息从套接字读出,并写入buf缓冲区。

int SSL_read (SSL *ssl, char *buf, int num )

头:#include

参数:SSL指针

返回值:连接完全关闭返回1,不完全关闭返回0,这时需要再次调用此函数,出错返回-1

说明:此函数关闭SSL套接字

int SSL_shutdown(SSL *ssl)

头:#include

参数: SSL指针

返回值:void

说明:此函数释放SSL套接字

void SSL_free (SSL *)

头:#include

参数:SSL_CTX指针

返回值:void

说明:此函数释放SSL环境

void SSL_CTX_free (ctx)

头:#include

参数:SSL指针

返回值:验证结果

说明:如果在握手过程中存在证书验证的话,这个函数将返回验证结果,具体的结果值可以查看:openssl/x509_vfy.h       

long SSL_get_verify_result(const SSL *ssl)

其它Openssl的api帮助文档:

http://www.openssl.org/docs/ssl/ssl.html

第一章 基础知识.....................................................................................................................10 1.1 对称算法.....................................................................................................................10 1.2 摘要算法.....................................................................................................................10 1.3 公钥算法.....................................................................................................................11 1.4 回调函数.....................................................................................................................13 第二章 openssl 简介................................................................................................................15 2.1 openssl 简介................................................................................................................15 2.2 openssl 安装................................................................................................................15 2.2.1 linux 下的安装................................................................................................15 2.2.2 windows 编译与安装.....................................................................................15 2.3 openssl 源代码............................................................................................................16 2.4 openssl 学习方法........................................................................................................18 第三章 堆栈.............................................................................................................................19 3.1 openssl 堆栈................................................................................................................19 3.2 数据结构.....................................................................................................................19 3.3 源码.............................................................................................................................19 3.4 定义用户自己的堆栈函数.........................................................................................20 3.5 编程示例.....................................................................................................................21 第四章 哈希表.........................................................................................................................23 4.1 哈希表.........................................................................................................................23 4.2 哈希表数据结构.........................................................................................................23 4.3 函数说明.....................................................................................................................24 4.4 编程示例.....................................................................................................................26 第五章 内存分配.....................................................................................................................29 5.1 openssl 内存分配........................................................................................................29 5.2 内存数据结构.............................................................................................................29 5.3 主要函数.....................................................................................................................30 5.4 编程示例.....................................................................................................................30 第六章 动态模块加载.............................................................................................................32 6.1 动态库加载.................................................................................................................32 6.2 DSO 概述....................................................................................................................32 6.3 数据结构.....................................................................................................................32 6.4 编程示例.....................................................................................................................33 第七章 抽象IO .......................................................................................................................36 7.1 openssl 抽象IO ..........................................................................................................36 7.2 数据结构.....................................................................................................................36 7.3 BIO 函数....................................................................................................................37 7.4 编程示例.....................................................................................................................38 7.4.1 mem bio...........................................................................................................38 7.4.2 file bio .............................................................................................................38 7.4.3 socket bio ........................................................................................................39 7.4.4 md BIO............................................................................................................41 7.4.5 cipher BIO.......................................................................................................41 7.4.6 ssl BIO.............................................................................................................42 5 7.4.7 其他示例.........................................................................................................44 第八章 配置文件.....................................................................................................................45 8.1 概述.............................................................................................................................45 8.2 openssl 配置文件读取................................................................................................45 8.3 主要函数.....................................................................................................................45 8.4 编程示例.....................................................................................................................46 第九章 随机数.........................................................................................................................48 9.1 随机数.........................................................................................................................48 9.2 openssl 随机数数据结构与源码................................................................................48 9.3 主要函数.....................................................................................................................49 9.4 编程示例.....................................................................................................................50 第十章 文本数据库.................................................................................................................52 10.1 概述.........................................................................................................................52 10.2 数据结构.................................................................................................................52 10.3 函数说明.................................................................................................................53 10.4 编程示例.................................................................................................................53 第十一章 大数.........................................................................................................................56 11.1 介绍.............................................................................................................................56 11.2 openssl 大数表示........................................................................................................56 11.3 大数函数.....................................................................................................................56 11.4 使用示例.....................................................................................................................59 第十二章 BASE64 编解码.....................................................................................................66 12.1 BASE64 编码介绍.....................................................................................................66 12.2 BASE64 编解码原理..................................................................................................66 12.3 主要函数.................................................................................................................67 12.4 编程示例.................................................................................................................67 第十三章 ASN1 库..................................................................................................................70 13.1 ASN1 简介..................................................................................................................70 13.2 DER 编码....................................................................................................................71 13.3 ASN1 基本类型示例..................................................................................................71 13.4 openssl 的ASN.1 库..................................................................................................74 13.5 用openssl 的ASN.1 库DER 编解码....................................................................75 13.6 Openssl 的ASN.1 宏..................................................................................................76 13.7 ASN1 常用函数..........................................................................................................77 13.8 属性证书编码...........................................................................................................90 第十四章 错误处理.................................................................................................................95 14.1 概述.........................................................................................................................95 14.2 数据结构.................................................................................................................95 14.3 主要函数.................................................................................................................97 14.4 编程示例.................................................................................................................99 第十五章 摘要与HMAC......................................................................................................102 15.1 概述.......................................................................................................................102 15.2 openssl 摘要实现......................................................................................................102 15.3 函数说明...............................................................................................................102 6 15.4 编程示例...............................................................................................................103 15.5 HMAC.......................................................................................................................104 第十六章 数据压缩...............................................................................................................106 16.1 简介.......................................................................................................................106 16.2 数据结构...............................................................................................................106 16.3 函数说明...............................................................................................................107 16.4 openssl 中压缩算法协商..........................................................................................107 16.5 编程示例...............................................................................................................108 第十七章 RSA.......................................................................................................................109 17.1 RSA 介绍...................................................................................................................109 17.2 openssl 的RSA 实现................................................................................................109 17.3 RSA 签名与验证过程..............................................................................................110 17.4 数据结构...............................................................................................................110 17.4.1 RSA_METHOD.................................................................................................110 17.4.2 RSA............................................................................................................... 111 17.5 主要函数...............................................................................................................112 17.6 编程示例.......................................................................................................................113 17.6.1 密钥生成............................................................................................................113 17.6.2 RSA 加解密运算..........................................................................................115 17.6.3 签名与验证........................................................................................................118 第十八章 DSA.......................................................................................................................121 18.1 DSA 简介..............................................................................................................121 18.2 openssl 的DSA 实现................................................................................................121 18.3 DSA 数据结构..........................................................................................................122 18.4 主要函数...............................................................................................................123 18.5 编程示例...............................................................................................................124 18.5.1 密钥生成............................................................................................................124 18.5.2 签名与验证........................................................................................................125 第十九章DH...............................................................................................................................128 19.1 DH 算法介绍............................................................................................................128 19.2 openssl 的DH 实现..................................................................................................128 19.3 数据结构.......................................................................................................................129 19.4 主要函数...............................................................................................................130 19.5 编程示例...............................................................................................................131 第二十章 椭圆曲线...............................................................................................................134 20.1 ECC 介绍..................................................................................................................134 20.2 openssl 的ECC 实现................................................................................................134 20.3 主要函数...............................................................................................................135 20.4 编程示例...............................................................................................................135 第二十一章 EVP...................................................................................................................139 21.1 EVP 简介......................................................................................................................139 21.2 数据结构......................................................................................................................139 21.2.1 EVP_PKEY...................................................................................................139 21.2.2 EVP_MD.......................................................................................................140 7 21.2.3 EVP_CIPHER...............................................................................................141 21.2.4 EVP_CIPHER_CTX.....................................................................................142 21.3 源码结构......................................................................................................................142 21.4 摘要函数......................................................................................................................143 21.5 对称加解密函数..........................................................................................................143 21.6 非对称函数..................................................................................................................144 21.7 BASE64 编解码函数................................................................................................145 21.8 其他函数.......................................................................................................................145 21.9 对称加密过程............................................................................................................147 21.10 编程示例...............................................................................................................148 第二十二章 PEM 格式.........................................................................................................155 22.1 PEM 概述.................................................................................................................155 22.2 openssl 的PEM 实现................................................................................................155 22.3 PEM 函数.................................................................................................................156 22.4 编程示例...............................................................................................................157 第二十三章 Engine ...............................................................................................................161 23.1 Engine 概述..............................................................................................................161 23.2 Engine 支持的原理..................................................................................................161 23.3 Engine 数据结构......................................................................................................161 23.4 openssl 的Engine 源码...........................................................................................162 23.5 Engine 函数..............................................................................................................163 23.6 实现Engine 示例.................................................................................................164 第二十四章 通用数据结构...................................................................................................178 24.1 通用数据结构...............................................................................................................178 24.2 X509_ALGOR..........................................................................................................178 24.3 X509_VAL................................................................................................................179 24.4 X509_SIG .................................................................................................................181 24.5 X509_NAME_ENTRY.............................................................................................182 24.6 X509_NAME............................................................................................................182 24.7 X509_EXTENSION .................................................................................................188 24.8 X509_ATTRIBUTE..................................................................................................194 24.9 GENERAL_NAME ..................................................................................................195 第二十五章 证书申请...........................................................................................................199 25.1 证书申请介绍.......................................................................................................199 25.2 数据结构...............................................................................................................199 25.3 主要函数...............................................................................................................200 25.4 编程示例...............................................................................................................202 25.4.1 生成证书请求文件............................................................................................202 25.4.2 解码证书请求文件.......................................................................................204 第二十六章 X509 数字证书.................................................................................................206 26.1 X509 数字证书.........................................................................................................206 26.2 opessl 实现................................................................................................................206 26.3 X509 数据结构.........................................................................................................206 26.4 X509_TRUST 与X509_CERT_AUX......................................................................209 8 26.5 X509_PURPOSE ......................................................................................................211 26.6 主要函数...............................................................................................................214 26.7 证书验证...............................................................................................................217 26.7.1 证书验证项........................................................................................................217 26.7.2 Openssl 中的证书验证.................................................................................217 第二十七章 OCSP.................................................................................................................218 27.1 概述.......................................................................................................................218 27.2 openssl 实现..............................................................................................................218 27.3 主要函数...............................................................................................................218 27.4 编程示例.......................................................................................................................223 第二十八章 CRL...................................................................................................................224 28.1 CRL 介绍..................................................................................................................224 28.2 数据结构...............................................................................................................224 28.3 CRL 函数..................................................................................................................225 28.4 编程示例...............................................................................................................226 第二十九章 PKCS7...............................................................................................................229 29.1 概述...............................................................................................................................229 29.2 数据结构...............................................................................................................229 29.3 函数.......................................................................................................................230 29.4 消息编解码.............................................................................................................230 29.4.1 data ..............................................................................................................231 29.4.2 signed data...................................................................................................231 29.4.3 enveloped ....................................................................................................232 29.4.4 signed_and_enveloped ................................................................................233 29.4.5 digest ...........................................................................................................234 29.4.6 encrypted.....................................................................................................234 29.4.7 读取PEM .....................................................................................................235 29.4.8 解码pkcs7 ....................................................................................................236 第三十章 PKCS12...............................................................................................................237 30.1 概述.......................................................................................................................237 30.2 openss 实现...............................................................................................................237 30.3 数据结构.......................................................................................................................237 30.4 函数...............................................................................................................................238 30.5 编程示例...............................................................................................................240 第三十一章 SSL 实现...........................................................................................................250 31.1 概述...............................................................................................................................250 31.2 openssl 实现..............................................................................................................250 31.3 建立SSL 测试环境..............................................................................................250 31.4 数据结构...............................................................................................................251 31.5 加密套件...............................................................................................................252 31.6 密钥信息...............................................................................................................253 31.7 SESSION ..................................................................................................................253 31.8 多线程支持...........................................................................................................254 31.9 编程示例...............................................................................................................254 9 31.10 函数.......................................................................................................................265 第三十二章 Openssl 命令.....................................................................................................268 32.1 概述...............................................................................................................................268 32.2 asn1parse...................................................................................................................268 32.3 dgst...........................................................................................................................270 32.4 gendh.........................................................................................................................271 32.5 passwd.......................................................................................................................271 32.6 rand ...........................................................................................................................272 32.7 genrsa ........................................................................................................................273 32.8 req .............................................................................................................................273 32.9 x509...........................................................................................................................276 32.10 version...................................................................................................................279 32.11 speed......................................................................................................................279 32.12 sess_id .................................................................................................................280 32.13 s_server ...............................................................................................................280 32.14 s_client ................................................................................................................282 32.15 rsa........................................................................................................................284 32.16 pkcs7 ...................................................................................................................285 32.17 dsaparam .............................................................................................................285 32.18 gendsa..................................................................................................................286 32.19 enc .......................................................................................................................287 32.20 ciphers .................................................................................................................288 32.21 CA.......................................................................................................................288 32.22 verify ...................................................................................................................292 32.23 rsatul....................................................................................................................293 32.24 crl ..........................................................................................................................294 32.25 crl2pkcs7 ...........................................................................................................295 32.26 errstr ..................................................................................................................296 32.27 ocsp .............................................................................................................................296 32.28 pkcs12 .................................................................................................................299 32.29 pkcs8 ...................................................................................................................301 32.30 s_time ..................................................................................................................302 32.31 dhparam 和dh.............................................................................................................303 32.32 ecparam.................................................................................................................305 32.33 ec .........................................................................................................................306 32.34 dsa .......................................................................................................................307 32.35 nseq .....................................................................................................................308 32.36 prime ...................................................................................................................308 32.37 smime ..................................................................................................................309
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值