Rsa私钥签名报错,InvalidKeySpecException:algid parse error, not a sequence问题的解决,Rsa秘钥格式转换错误,Rsa秘钥格式的转换办法。

解锁新技能《RSA获取私钥报java.security.InvalidKeyException: IOException : algid parse error, not a sequence》 开源依赖pom引用: 阅读详情
AI摘要

本文介绍了一种解决使用Rsa私钥进行签名时遇到的问题的方法。问题源于私钥格式不匹配,即Python中使用的PKCS1格式与Java期望的PKCS8格式不符。文章提供了一个简便快捷的解决方案:利用支付宝提供的工具将私钥从PKCS1转换为PKCS8格式,并给出了具体的Java签名实现代码。

使用Rsa的私钥签名的时候,遇到一个坑。

因为私钥是python使用的,用的pcks1格式,然后java使用pcks8生成秘钥的时候就报错:

algid parse error, not a sequence

网上有很多解决方案,但是比较之后,最方便,最快速的方案是,转换格式,把PKCS1转成PKCS8,使用的工具是支付宝的转换工具,下载地址:https://docs.open.alipay.com/291/106097/

 

使用的生成签名的代码如下:

  public static String rsaSignHex(String content, String privateKey,String signType) {
        try {
            PKCS8EncodedKeySpec priPKCS8    = new PKCS8EncodedKeySpec( Base64.decode(privateKey) );
            KeyFactory keyf = KeyFactory.getInstance("RSA");
            PrivateKey priKey = keyf.generatePrivate(priPKCS8);//privateKey格式不会,这儿会crash
            java.security.Signature signature = java.security.Signature.getInstance(signType);// "SHA-256"  "SHA1WithRSA"  SHA256withRSA
            signature.initSign(priKey);
            signature.update( content.getBytes());
            byte[] signed = signature.sign();
            return bytesToHex(signed);
        }catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

 

 

 

 

 

RSA密钥格式转换实战:PKCS#1与PKCS#8互转详解与工具指南 在非对称加密领域,RSA算法是保障数据传输安全的核心技术之一。其原理基于大数分解的数学难题,通过公钥加密、私钥解密实现信息的安全交换。RSA密钥的编码格式直接决定了其在系统间的互操作性,是工程实践中常见的技术瓶颈。PKCS#1作为RSA的专有格式,广泛应用于传统系统;而PKCS#8作为一种通用容器格式,支持多种算法,已成为现代应用和编程语言(如Java、Go)的默认选择。理解这两种格式的区别,掌握其转换方法,对于解决SSH连接失败、TLS证书解析错误等【原理扫描】问题至关重要。本文聚焦于【RSA密钥格式转换 阅读详情

相关推荐

Java InvalidKeySpecException 异常深度解析与实战排查指南

在Java安全编程领域,密钥是加密、解密、签名等操作的核心基础。其原理涉及将特定编码格式的密钥数据,通过密钥工厂(KeyFactory)和密钥规范(KeySpec)转换为可用的Key对象。这项技术的价值在于保障数据传输与身份认证的安全,广泛应用于支付系统、API通信、配置文件加密等场景。然而,在此过程中,开发者常因密钥格式不匹配或数据损坏等问题,遭遇InvalidKeySpecException这一典型异常。本文将聚焦该异常,结合PEM格式处理和BouncyCastle库等热词,提供从原理到修复的系统化解决

areen7003的博客 716

alg id parse error, not a sequence错误

先说下这个错误的英文解释吧,parse error,not a sequence比较简单,就是说解析错误,不是一个sequence(我认为可以理解为是字符串,当然最好说成是“序列”吧)。那么问题来了——algid是什么意思?百度、谷歌翻译了很多,也没有找到合理的解释!不过我查了下字典,对algid解释为(发烧前)发冷的,寒冷的; 是一个形容词,那么名字就是这个error了。我理解的意思是:说明

ls0111的博客 3万+

Spring Boot集成国密SM2算法实战:基于BouncyCastle的加密与签名实现

非对称加密是保障数据传输安全与身份认证的核心技术,其原理基于公钥与私钥的数学配对关系,公钥公开用于加密或验签,私钥保密用于解密或签名。相较于国际通用的RSA算法,国密SM2作为我国自主设计的椭圆曲线密码标准,在同等安全强度下具备更短的密钥长度和更高的运算效率,在政务、金融等对合规性有严格要求的领域具有不可替代的技术价值。在实际的工程实践中,将SM2算法集成到主流的Spring Boot应用框架中,常面临依赖管理、密钥格式转换、国标规范兼容等具体挑战。本文聚焦于使用BouncyCastle 1.68密码库,详

搜索 382

RSA加解密时报algid parse error, not a sequence错误

问题:在RSA加解密验证时,使用私钥无法生成签名,报algid parse error, not a sequence错误 原因:公私秘钥在使用前未进行pkcs8编码 解决方案:使用openssl(官网:https://www.openssl.org/source/)将公私钥进行pkcs8编码,将秘钥文件拷贝到openssl安装目录中,打开cmd命令进入该目录,执行命令: openssl pkc...

Alex的博客 2万+

java.security.spec.InvalidKeySpecException: 无效密钥规范异常的正确解决方法

java.security.spec.InvalidKeySpecException: 无效密钥规范异常的正确解决方法

wbajsjhhhhh的博客 4581

基于计算机视觉的Windows自动化工具openclaw-win:从原理到实战

计算机视觉与自动化技术正深刻改变人机交互方式,其核心在于让机器具备“感知-决策-执行”的能力。通过图像采集与处理算法,程序可以识别屏幕上的特定元素;结合模拟输入技术,便能自动执行点击、拖拽等操作,形成完整的自动化闭环。这一技术栈在软件测试、数据采集、重复性办公任务等领域具有重要价值,能够显著提升工作效率。开源项目openclaw-win正是这一理念的工程实践,它整合了图像识别与模拟操作模块,为开发者提供了一个研究自动化技术的具体样本。项目涉及模板匹配、坐标计算等关键技术点,并需处理屏幕适配、操作延迟等实际问

weixin_28745975的博客 326

RSA加密异常:java.security.InvalidKeyException: IOException : algid parse error, not a sequence,处理方法

一、异常信息 在进行RSA加密的时候,报异常:algid parse error, not a sequence。具体错误信息如下: Exception in thread "main" java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : algid pars...

月痕 3万+

Fluent Meshing边界层设置保姆级教程:从y+理论到实战避坑,看完就会

本文详细解析了Fluent Meshing边界层设置的全过程,从y+理论基础到实战避坑技巧,帮助用户精准计算第一层高度并优化参数配置。通过案例演示和常见问题诊断,指导读者掌握边界层网格生成的核心技术,提升CFD模拟精度。特别针对不同湍流模型的y+要求提供具体参数建议。

weixin_30576827的博客 784

Java InvalidKeySpecException 异常全解析:从密钥规范到实战排查

在Java密码学体系(JCA/JCE)中,密钥的安全加载与解析是保障应用安全通信、数据加密和身份验证的基石。其核心原理在于密钥规范(KeySpec)与密钥工厂(KeyFactory)之间的严格契约关系:KeySpec定义了密钥的原始数据格式(如PKCS#8、X.509),而KeyFactory则负责根据特定算法(如RSA、EC)将其转换为可用的密钥对象。一旦两者不匹配——例如算法错误、编码格式不符或数据损坏——便会抛出InvalidKeySpecException。这一机制的技术价值在于确保了密钥处理的严格

weixin_30443813的博客 390

如何处理MIGO取消物料凭证报错:“只是可能对有相同的价格控制进行倒记账(本月S,前月V)” & “仅在 QM 中修改物料质量检验库存”

记录一次处理MM模块的报错。这次连续处理了两个错误,“只是可能对有相同的价格控制进行倒记账(本月S,前月V)” & “仅在 QM 中修改物料质量检验库存”。把过程和操作步骤记录下一。方便日后回头查找。

IT小职员 6231

迈德威视相机调用( 基于 Linux系统+ OpenCV )

迈德威视相机调用( 基于 Linux系统+ OpenCV )前言一、登录迈德威视官网,下载官方SDK二、代码调用与视频帧处理( 基于 OpenCV )总结 前言     此博客记录了迈德威视工业相机在 Linux 系统下的代码调用及其环境配置,通过 OpenCV 对视频帧进行处理。   一、登录迈德威视官网,下载官方SDK      迈德威视官网 : http://www.mindvision.com.cn/     1. 进入官网后,在服务支持中选择软件下载。    2. 选择Linux系统S.

kkkkkk0729的博客 5675

Spring Boot API安全实战:基于RSA签名验签防篡改与防重放攻击

在API接口安全领域,HTTPS确保了传输层的加密,但无法防止请求数据在客户端或服务器端被篡改,以及请求被恶意重放。数字签名技术通过非对称加密算法(如RSA)为数据完整性和身份认证提供了解决方案。其核心原理是发送方使用私钥对请求数据的摘要进行加密生成签名,接收方使用公钥解密并比对摘要,以此验证请求的合法性与完整性。这项技术的工程价值在于,它能有效防御中间人篡改参数(如订单金额)和重放攻击,是构建高安全等级开放平台、支付系统、电商交易等场景的基石。本文以Spring Boot为技术栈,深入剖析RSA签名验签的

cneo2012的博客 413

YOLOv11 模型轻量化全流程:从剪枝到量化,打造移动端“极速检测利器”

将浮点模型量化为INT8模型,减少内存占用并加速推理。# 加载剪枝后的模型# 转换为TorchScript# 静态量化# 保存量化模型量化后模型推理速度可再提升20%,而mAP损失小于1%。

m0_64661770的博客 465

java.security.InvalidKeyException: IOException : algid parse error, not a sequence

问题:读取私钥时报错: KeyFactory keyFactory = KeyFactory.getInstance("RSA");PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(Base64.decodeBase64(privateKeyPEM)); 错误原因 : 私钥格式错误,错误的privateKey是通过openssl生成的私钥,默认pkcs1格式(将文件中去掉私钥头-----BEGIN RSA PRIVATE KEY-----和私

GET知识不迷路,点赞评论加关注! 8170

【跳频通信】基于MATLAB的跳频通信系统仿真

同时,跳频通信也具有良好的抗干扰能力,即使有部分频点被干扰,仍能在其他未被干扰的频点上进行正常的通信。由于跳频通信系统是瞬时窄带系统,它易于与其他的窄带通信系统兼容,也就是说,跳频电台可以与常规的窄带电台互通,有利于设备的更新。跳频是最常用的扩频方式之一,其工作原理是指收发双方传输信号的载波频率按照预定规律进行离散变化的通信方式,也就是说,通信中使用的载波频率受伪随机变化码的控制而随机跳变。从通信技术的实现方式来说,“跳频”是一种用码序列进行多频频移键控的通信方式,也是一种码控载频跳变的通信系统。

FPGA/MATLAB学习教程/源码/项目合作开发 6265

SOME/IP协议详解「1.1·面向服务与面向信号」

面向信号和面向服务的区别,和举例子

雪云飞星的博客 5653

加载秘钥InvalidKeySpecException: java.security.InvalidKeyException: IOException: Short read of DERl 异常处理

导致异常的原因通常有两种:第一,JDK加密算法问题,第二,秘钥内容自身问题。

林夕 1万+

YOLO26涨点改进| CVPR 2026 | 独家创新首发、特征融合改进篇 | 引入 LFSB 差分双维注意融合模块,通过交替特征融合与分离策略,能够精准区分目标特征,顶会助力YOLO26有效涨点

本文提出LSFB差分双维注意融合模块,用于改进YOLO26目标检测模型。该模块通过融合-分离交替策略和差分注意力机制,有效提升模型在复杂场景下的特征分离能力,特别是在处理重叠物体或反射干扰时表现优异。LSFB采用双向投影、双维注意力计算和跨流减法算子,实现特征共享与独立提取的平衡。实验表明,该模块能显著减少特征混淆,提高检测精度和鲁棒性。文章还详细介绍了模块实现的核心代码、YAML配置文件修改方法以及三种改进方案,为YOLO26模型性能提升提供了创新解决方案。

Ai缝合怪、助力小伙伴高效发论文 326

JAVA SHA1WithRSA加解密时报algid parse error, not a sequence错误

在使用对方提供的private.pem文件进行SHA1WithRSA加密时,报algid parse error, not a sequence错误。在多次进行测试后发现,私钥在使用前为pkcs1格式,而java在不引用第三方包的情况下无法直接使用pkcs1格式的密钥,需要将其转化为pkcs8编码。通过openssl将私钥进行pkcs8编码,将密钥文件private.pem拷贝到openssl安装目录中,使用cmd命令进入该目录,执行命令:openssl pkcs8 -topk8 -inform PEM -

gry199604的博客 1219

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

InvalidKeySpecException: encoded key spec not recognised

java.security.spec.InvalidKeySpecException: encoded key spec not recognised at org.bouncycastle.jcajce.provider.asymmetric.util.BaseKeyFactorySpi.engineGeneratePrivate(Unknown Source) at org.bouncycastle.jcajce.provider.asymmetric.ec.KeyFactorySpi.

qq_16613311的博客 1万+

深度学习工具包 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")

algid parse error, not a sequence错误

主要使用由于没有对使用openssl生成的公私密钥对进行pkcs8编码,导致程序无法识别参考支付宝。项目用用到RSA加密用openssl生成了一个公私密钥对,在对加密字符串进行数字签名的时候,程序一直报错,错误异常: algid parse error, not a sequence​ 其原因是因为,我用openssl生成的私钥没有进行pkcs8编码,所以导致程序无法识别。恩,用openssl...

weixin_34405557的博客 967

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java--RSA加密、解密报错( algid parse error, not a sequence)

今天和前端通过RSA进行加密、解密传输。前端同事加密、解密正常,但是我(java)后台报错:algid parse error, not a sequence。 经过各种查询和验证,错误原因在于RSA加密、解密格式错误。 RSA有两种格式:PKCS1、PKCS8(该格式一般java调用)。 RSA的公钥和私钥是主管(前端)传来的,需要转换格式才能正常使用。我使用的网站是:http://too...

pei_fang的博客 4751

您使用的私钥格式错误,请检查RSA私钥配置,charset = utf-8

说实话我网上也找了其他人的什么文件格式问题,蒙。因为密钥不是我生成的,我猜想是生成密钥的时候,选的Java,然后我去官网格式转换了下私钥格式,转成非Java,成功了!!!! 附上支付宝密钥一条龙链接: 第一步:生成密钥并上传 | 网页&移动应用 第二附上其他签名报错的官网地址,自行去翻阅 https://opensupport.alipay.com/support/knowledge/20060/201602281749 ...

鸣的博客 2646

RSA加解密java.security.InvalidKeyException: IOException : algid parse error, not a sequence错误

拿到一个私钥,需要将加密的数据给解密出来。怎么都解不出来,在获取PrivateKey的时候就报错algid parse error, not a sequence KeyFactory.getInstance("RSA").generatePrivate( new PKCS8EncodedKeySpec(Encodes.decodeBase64("priKey"))) 原因是私钥串不是PKCS#8的格式,不使用第三方jar是转不出来的 解决办法一种是用op

程序员 2327
上一篇: win10 安装cp2102驱动和查看端口号
下一篇: Des加密
theKingOfCoding
博客等级 码龄10年 5粉丝 14原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值