自签证书问题梳理

安装mitmproxy完成,运行mitmdump报错OpenSSL.crypto.Error: [(‘PEM routines‘, ‘PEM_read_bio‘ 学习《Python 3网络爬虫开发实战》过程中,在安装mitmproxy完成后,运行mitmdump报错OpenSSL.crypto.Error: [('PEM routines', 'PEM_read_bio' 阅读详情

1.自签证书在freeradius提示错误:

error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

发现主要是证书的中扩展属性的ASN编码的某个字段无法被openssl解析



2.证书名字显示不是一个友好可读的内容:

可通过设置如下代码解决:

PKCS12BagAttributeCarrier bagAttr = (PKCS12BagAttributeCarrier) keyPair.getPrivate();
bagAttr.setBagAttribute(PKCSObjectIdentifiers.pkcs_9_at_friendlyName, new DERBMPString(alias));
即设置一个友好 的名字来解决


3.证书在chrome、firefox中显示的证书名字实为subject_dn_cn,所以这个字段尽量让用户可识别


4.设置证书为可签发证书方式;

v3CertGen.addExtension(X509Extensions.BasicConstraints, true, new BasicConstraints(0)); 
// BasicConstraints 表示 可签发 ,  0表示可签发的深度








android 接支付宝在4.1版本下报java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D android 接支付宝在4.1版本下报java.security.spec.InvalidKeySpecException: java.lang.RuntimeException: error:0D解决 阅读详情

相关推荐

FileZilla Server TLS证书过期排查与自签证书重建指南

TLS证书是保障FTPS等加密通信安全的核心,自签证书若到期,服务虽在运行却会导致所有客户端握手失败。如何快速排查证书过期?使用openssl命令可精准确认证书有效期,并通过生成含SAN的新证书完成替换。以FileZilla Server为例,完整演示从现象定位、证书重建到协议加固的实践过程,同时涵盖TLS 1.2配置及CVE-2016-2183弱加密套件排查,为运维人员提供通用排障思路。

weixin_28715953的博客 91

支付宝Alipay接入时,报错Error: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

用支付宝开放平台开发助手生成的私钥是PKCS8格式的,需要转换成PKCS1格式,否则调用会报这个错。把数据转成这个格式,这个错误就会消失。

draracle的巢穴 3473

OpenSSL自签证书实战:从原理到部署,构建内网HTTPS信任体系

在构建安全的网络通信时,HTTPS协议与TLS/SSL证书是保障数据传输机密性与完整性的核心技术。其原理基于非对称加密与公钥基础设施(PKI),通过证书颁发机构(CA)建立的信任链来验证服务器身份。自签证书作为PKI的一种特殊形式,在开发、测试及内网环境中具有重要技术价值,它允许组织在缺乏公共CA的情况下,自主建立加密通信。然而,实践中常因忽略主题备用名称(SAN)等关键扩展属性,导致浏览器警告或客户端连接失败。本文聚焦于OpenSSL工具,系统阐述如何创建包含必要扩展信息的健壮自签证书,并详解在Nginx

weixin_32234493的博客 304

支付宝 error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag

在使用支付宝Demo时如果你的模拟器或者手机版本过高会崩溃通过查看Caused by 定位到错误如下:01-06 02:52:12.350: W/System.err(1903): Caused by: java.lang.RuntimeException: error:0D0680A8:asn1 encoding routines:ASN1_CHECK_TLEN:wrong tag看到这个蒙圈了鬼

FUCK 1万+

springboot+apache前后端分离部署https

现在网站访问基本都需要使用https访问,否则浏览器就会报不安全提示,本文针对springboot+apache前后端分离的项目的https设置与部署进行说明。

masson32的专栏 2348

数字证书、CA、SSL证书与CA锁的区别及HTTPS配置实操指南

数字证书是网络身份认证的基础,通过CA签发的证书实现信任传递。SSL证书作为数字证书在HTTPS场景的应用,保障通信加密。理解信任链原理和证书验证机制,能有效解决证书链不完整、域名不匹配等常见报错。在网站部署、内网服务配置及电子招投标等场景中,正确区分CA证书、SSL证书和CA锁至关重要。本文深入解析这些概念,并提供从申请到配置的完整实操步骤,帮助运维和开发人员高效管理证书。

weixin_31648507的博客 209

遇到问题:Error: error:0D0680A8:asn1 encoding routines:asn1_check_tlen:wrong tag

转格式很简单:用阿里给的助手,里面有一个格式转换,可以把私钥格式转换成需要的格式。用支付宝开放平台开发助手生成的私钥是。格式,否则调用会报这个错。

m0_57809042的博客 2690

APP 爬虫中的证书验证:解决 HTTPS 请求证书错误问题

本文系统解析了APP爬虫中HTTPS证书验证的核心机制与解决方案。首先深入剖析了SSL/TLS握手流程及证书信任链原理,然后针对抓包阶段(Charles配置)和爬虫代码(Python requests库)中的常见证书错误,提供了证书安装、验证忽略、证书pinning绕过等实用方案。文章强调不同场景下的策略选择,并警示技术应用的合法边界。通过本文,读者可全面掌握HTTPS证书问题的处理技巧,为APP爬虫开发提供可靠的技术保障。

2503_91057718的博客 1236

新手用 OpenSSL 生成证书,常见误区与解决方法有哪些?

OpenSSL 是新手入门证书生成、学习 PKI 加密原理的常用开源工具,可快速生成自签证书用于本地开发、测试调试,但因依赖命令行操作且涉及多个细节,新手极易踩坑,既可能导致证书生成失败,还会留下安全隐患。本文汇总新手用 OpenSSL 生成证书的6大常见误区,精简拆解危害与实操解决方法,同时明确自签与权威证书的适用边界,帮新手高效避坑。证书链是验证合法性的核心,生成自签证书需完整生成三类证书,按“服务器证书→中间证书→根证书”拼接为 fullchain.pem,部署时同步配置密钥与证书链。

2301_78536879的博客 296

WordPress主题开发实战:从零开始手把手教你创建自定义主题(含常用函数大全)

本文是一份WordPress主题开发实战指南,从零开始手把手教你创建自定义主题。内容涵盖主题核心文件结构、模板层级与循环机制、函数与钩子的运用,并附有详细的常用函数大全,帮助开发者彻底掌握主题开发的核心技能,实现从使用者到创造者的转变。

weixin_27943395的博客 255

深入解析车载以太网DoIP诊断:Wireshark实战TCP/UDS报文分析

本文深入解析车载以太网DoIP诊断,重点介绍如何利用Wireshark进行TCP/UDS报文实战分析。文章详细讲解了从以太网帧、IP帧、TCP段到DoIP协议及UDS服务的逐层拆解方法,并提供了使用Wireshark定位通信故障(如乱序、丢包、重传)的实用技巧,帮助工程师高效排查车载诊断网络问题。

c2d3e4f的博客 674

部署总失败?Open-AutoGLM在Windows系统的10个关键避坑点,99%新手都忽略

解决Windows下Open-AutoGLM部署难题,本教程梳理10个关键避坑点,涵盖环境配置、依赖安装与常见报错处理,提升本地大模型部署成功率。适用于AI开发与自动化场景,方法实用高效,windows Open-AutoGLM部署教程一文掌握,值得收藏。

ProceSeed的博客 1012

39文章解读与程序——EI\CSCD\北大核心《基于两阶段鲁棒优化算法的微网多电源容量配置》已提供下载资源

电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python,机器学习,计算机视觉,深度学习,神经网络,数据挖掘领域.《《《《《《《《更多资源还请持续关注本专栏》》》》》》》《《《《《《《《更多资源还请持续关注本专栏》》》》》》》论文与完整源程序_电网论文源程序的博客-优快云博客。电网论文源程序-优快云博客。

LIANG674027206的博客 1208

ssl证书梳理

7、客户端证书验证规则:根证书 --CA机构给的解密公钥--> 下一级中间证书(解密后进行哈希算法同下一级中间证书明文信息比对,通过则继续)--拿到下一级中间证书摘要内的解密公钥--> 域证书(解密后进行哈希算法获取会话密钥加密公钥,最新的ECDHE算法已经不在证书中,而是在tls握手阶段生成)。1、用户客户端 --tls加密--> DDos防御平台(htts解密)--tls加密--> CDN(https解密)--tls加密--> 负载设备F5(ssl卸载)--http--> 源站。(缺乏交叉链中间证书)

2404_85855917的博客 199

深入解析Vivado FIFO的Standard与FWFT模式:性能对比与应用场景

本文深入解析了Vivado FIFO的Standard与FWFT两种工作模式的核心差异。通过对比数据就绪时机、读延迟、控制逻辑和有效深度等关键特性,并结合图像处理、数据包转发等典型应用场景,为FPGA设计者提供了清晰的选择依据和实战配置指南,帮助优化数据流性能与设计效率。

weixin_29219189的博客 253

H3C防火墙旁路部署实战:网关迁移到防火墙后,如何配置DHCP和VLAN间隔离策略?

本文详细介绍了H3C防火墙旁路部署实战,重点讲解网关迁移到防火墙后的DHCP配置和VLAN间隔离策略。通过实际案例和配置示例,帮助网络工程师解决传统核心交换机架构的性能瓶颈和安全管控问题,实现精细化访问控制。

weixin_42549451的博客 415

【k8s admission 学习】使用 go 语言创建自签证书及签发证书

在使用openssl创建证书时,遵循的步骤是 创建秘钥 > 创建CA > 生成要颁发证书的秘钥 > 使用CA签发证书。不管是根证书,中级证书还是终端域名证书,都需要先生成一个私钥,然后通过私钥来获取公钥再进行证书签名,OpenSSL 可以通过。这样我们就配置好了三级证书的签名请求了,这里都是分开写的,大部分代码都是一样的,可以写成一个方法,这里就不扩展了。如上,我们完成了证书的生成、存储和读取等能力,证书相关的处理就结束了。,用来区分这是一个根证书,过期时间设置为十年,根证书十年足够了,

叮当猫的喵i 2069

Unity URP项目里Post Processing死活没效果?别慌,这5个坑我帮你踩过了

本文详细解析了Unity URP项目中Post Processing效果失效的五大常见问题,包括渲染管线配置冲突、Volume作用域误判、摄像机参数漏配、Layer层级冲突和Profile引用异常。通过实际项目案例和代码示例,提供专业级解决方案,帮助开发者快速排查并修复后处理效果不生效的问题。

weixin_33721427的博客 333

java与es8实战之五:SpringBoot应用中操作es8(带安全检查:https、账号密码、API Key)

SpringBoot应用中操作es8,本篇重点是如何连接带安全检查的es8服务端(https、账号密码、API Key)

程序员欣宸的博客 4163

Ubuntu配置Qt Creator树莓派交叉编译环境一步到位

本文详细指导在Ubuntu系统上配置Qt Creator树莓派交叉编译环境。从工具链安装、sysroot创建到Qt库编译,逐步讲解如何搭建完整的ARMv7交叉编译工具链,实现高效开发树莓派应用。

1274

【零基础入门unity游戏开发——unity通用篇12】导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

导入导出unity资源包、设置编程工具、创建脚本(组件)规则、MonoBehaviour基类介绍、脚本模板(基于unity6开发介绍)

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 758

Python 全栈系列112 -现有服务体系梳理

说明 简单梳理一下当前的服务体系,以便后续进一步迭代。 内容 1 核心的web服务 服务名 作用 portal.domainname.com 各个功能的汇聚点 auth.domainname.com 授权模块 doc.domainname.com(未完成) 文档模块 核心服务通过nginx实现ssl连接,证书是阿里免费版的,一年一换,以后要麻烦的话就搞自签证书。 核心服务有一些待完成的技术点 技术点 对应的(潜在的)问题 大内存+redis 对应大并发问题 冲

yukai08008的博客 326

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

个人微信API项目落地前要准备什么?开发环境与接口资源全面梳理

落地前的准备工作看着琐碎,但真的是磨刀不误砍柴工。我那次血泪教训之后,养成了"先准备后写码"的习惯,后面几个项目上线都顺得多。个微API这类项目,技术本身不难,难在细节和稳定性。把环境、资源、账号、回调、监控这五块准备扎实,你的项目就成功了六成。剩下的四成靠业务设计和持续运维,那是另外的话题了。希望这篇能帮到正在准备接微信协议API的同学,少踩点我踩过的坑。Eyun开发文档。

E云管家的专栏 348

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

零服务器成本:10 分钟把 Folia 全屏歌词动画装进手机 PWA 的完整指南

Folia 没有官方手机 App,但 Web 版原生支持 PWA(可安装网页应用):把地址添加到手机主屏幕,这个全屏歌词动画播放器就以独立应用形态运行,登录态还留在手机浏览器里。这篇指南按"先解决有没有地址、再解决装不装得上、最后解决歌从哪来"的顺序,带你一次走通。 ## 🧭 先搞懂 PWA 本质:一个能被装进主屏幕的网页 先说结论:PWA 不是什么新技术,它就是一个"可安装的网页"。浏览器

gitblog_00340的博客 283

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

requests 超时、重试、SSL 报错?9 个高频问题与一整张排错对照表

先给结论:requests 的默认配置几乎全是"危险默认"——默认没有超时、默认不重试、默认每次新建连接。绝大多数线上事故不是 requests 的 bug,而是这三个默认没被覆盖。

小小张说故事的博客 238

秒杀所有常见的网络连通问题总结

诊断顺序先检查 DNS。再检查端口。最后用测试实际服务。如果 ping 不通:无需担心,重点通过telnet检查端口和通过curl检查服务。如果直连失败:尝试通过代理访问(如curl --proxy "http://代理IP:端口"总结:按照nslookup(找IP)ping(看主机存活),telnet(看端口策略)curl(看业务响应)的顺序或逆推逻辑,几乎可以秒杀所有常见的网络连通性问题。

Autumn_horse的博客 320
上一篇: radius系列:freeradius搭建
下一篇: radius系列:freeradius测试
「已注销」
博客等级 码龄20年 47粉丝 107原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值