警示:"您的应用的签名算法采用“SHA256withRSA”,在部分4.2以下安卓版本的手机上不能安装"

C#中使用BouncyCastle实现MD5withRSA与SHA256withRSA签名验签 数字签名是保障数据完整性与身份认证的核心技术,其原理基于非对称加密与哈希算法的结合。通过私钥对数据的哈希值进行加密生成签名,公钥则用于验证签名与原始数据哈希值的一致性。这项技术在金融支付、物联网通信等需要强安全保证的场景中具有重要价值。当在C#开发中需要实现特定标准的签名算法如MD5withRSA或SHA256withRSA时,.NET原生库可能无法提供足够的灵活性。BouncyCastle.Crypto作为强大的第三方加密库,提供了对PKCS#1等标准的细粒度控制,能够精准实现这些算法,并确保与Java、 阅读详情

问题描述:
使用360加固宝后上传apk,360平台提示"您的应用的签名算法采用“SHA256withRSA”,在部分4.2以下安卓版本的手机上不能安装"

分析:
360加固宝升级后apk加固并自动签名
签名策略采用:在这里插入图片描述
算法采用“SHA256withRSA”
提示是签名算法的问题,那么避免该种算法就行了。

解决:
1.打好的test.apk在360加固宝上仅加固,将“启用自动签名”勾掉,输出test_jiagu.apk。在这里插入图片描述
2.自行签名:控制台find到项目目录下,输入命令:jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore [签名文件路径] -signedjar [签名后apk路径] [原(要签名的)apk路径] [签名文件别名]

这样得到的apk文件就可以正常上传了。

说明:-sigalg SHA1withRSA -digestalg SHA1 就是避免采用SHA256withRSA算法
正常签名jarsigner -verbose -keystore [签名文件路径] -signedjar [签名后apk路径] [原(要签名的)apk路径] [签名文件别名]

从零构建UniApp微信支付:RSA签名背后的安全机制与实战避坑指南 本文详细解析了UniApp中微信支付的RSA签名安全机制,重点介绍了SHA256withRSA算法的实现原理与实战避坑技巧。通过典型错误案例和完整支付流程演示,帮助开发者掌握签名生成、参数准备及调试方法,确保支付功能的安全稳定运行。 阅读详情

相关推荐

Android数据安全实战:AES、RSA、MD5工具类封装与最佳实践

在移动应用开发中,数据安全是保障用户隐私和业务逻辑的基石。其核心原理在于通过密码学算法对数据进行变换,确保机密性、完整性和真实性。对称加密算法如AES,凭借其高效性,适用于大量数据的本地加密存储;而非对称加密算法如RSA,则解决了密钥安全分发的根本问题,常用于数字签名与密钥协商。消息摘要算法如MD5,虽然不可逆,但在非对抗性场景下为数据完整性校验提供了轻量级方案。将这些技术价值工程化,封装成统一、易用的工具类,能显著提升Android应用在用户凭证保护、敏感信息传输及本地缓存加密等场景下的安全水位。本文聚焦

weixin_34248705的博客 446

Android 升级签名算法从SHA1withRSA 升级到SHA256withRSA

想到要修改这个问题 是因为收到下面整改通知 要求我们更新签名文件的签名算法,看到这个问题都懵了呀 虽然打包天天用签名文件 但是从来没关注过他呀开发者自查: 不要使用已经过时或不安全的弱算法,确保签名证书使用了更强的签名算法, 如 SHA-2(其中包括 SHA-256 和 SHA-512)。然后就想着查看下签名信息:首先 查看签名信息有三种方法,第一种使用JDK的keytool -printcert -jarfile apk。

u013815832的博客 2554

RSA加密算法深度解析:从数学原理到Java/.NET实战应用

非对称加密是现代信息安全体系的基石,它通过公钥与私钥的分离解决了密钥分发难题。其核心原理基于单向陷门函数,即正向计算容易而逆向求解在计算上不可行。RSA作为最经典的非对称加密算法,其安全性建立在大整数分解难题之上,通过欧拉定理和模幂运算实现加密与解密。该技术在工程实践中具有极高价值,广泛应用于HTTPS安全通信、SSH远程登录、数字签名和软件许可证校验等场景。本文聚焦于RSA算法的核心实现细节,深入探讨了密钥生成、OAEP填充方案等关键环节,并针对Java和.NET等主流开发平台提供了可落地的代码示例。同时

weixin_34405557的博客 417

”您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装的解决方案

”您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装的解决方案

走向牛b之路! 9826

Java加密测试实战:Bouncy Castle核心测试用例设计与最佳实践

在Java加密开发中,单元测试是确保代码安全性与可靠性的基石。加密算法的核心原理在于通过特定数学变换实现数据的机密性、完整性与认证,其技术价值直接关系到系统安全防线。无论是金融交易、身份认证还是数据存储,加密技术都是底层关键支撑。本文聚焦于广泛使用的Bouncy Castle加密库,深入探讨如何针对**对称加密**、**非对称加密与签名**、哈希算法及国密算法等场景,设计有效的测试用例。内容涵盖测试框架选型、环境搭建、参数化测试应用以及常见异常排查,旨在帮助开发者构建坚实的加密代码质量保障体系,确保算法实现

weixin_34037515的博客 418

SSL/TLS协议深度解析:从握手原理到证书验证实战指南

SSL/TLS协议是现代网络安全的基石,它通过加密、认证和完整性保护三大机制,确保数据传输的安全。其核心原理基于非对称加密与对称加密的结合,在握手阶段建立安全通道,其中证书体系构建了关键的信任链。该技术的核心价值在于为HTTP、SMTP等应用层协议提供传输层安全保障,实现前向保密,防止中间人攻击。其应用场景极其广泛,涵盖Web浏览(HTTPS)、API通信、微服务间认证以及消息队列(如Kafka SASL_SSL)等。本文聚焦于SSL/TLS握手流程、证书验证机制及常见错误排查,针对开发中常遇到的 `una

weixin_30527323的博客 487

Android签名的两种方式

使用Android Studio签名 使用命令对APK签名

ncxnbrwa的博客 749

sha1withrsa算法 华为sha256withrsa算法

ANDROID SDK接入的华为c++验证算法 sha1withrsa算法 华为sha256withrsa算法

ANDROID接入华为SDK遇到的SHA256withRSA的问题解决

华为的SDK在登录时原来的实现思路是:1、C->SDK-C 2、SDK-C->C 3、C->S 4、S->SDK-S 5、SDK-S->S 6、S->C 新版本中,把步骤4和步骤5省了,官方原文:游戏可以将gameAuthSign、 playerId、 appId和ts提交到游戏自己的服务器,使用文档附 录一中的公钥进行验签,验签方式如下: a. 将 appId、 ts 和 playerId

uniqs 的博客 6306

openssl_rsa_sha256签名.zip

使用openssl,windows操作系统,sha256 对数据加密 + Rsa算法,对私钥签名。c/c++语言,可以与golang 的.SignPKCS1v15签名结果一致,需要的下载

VL53L1X vs VL53L0X:激光测距传感器选型指南与性能对比

本文深入对比了VL53L1X与VL53L0X两款激光测距传感器的核心差异。VL53L1X采用区域ToF原理,在抗环境光干扰、最大测距及多目标识别方面优势显著,尤其适合复杂光线与动态场景。文章结合机器人避障、无人机定高等实战场景,提供了清晰的选型决策树,帮助工程师根据测距需求、环境复杂度与系统成本做出最优选择。

weixin_29197699的博客 393

[免费专栏] Android安全之APK应用程序签名异常的检测方法

转移发布平台通知:将不再在优快云博客发布新文章,敬请移步知识星球... ...

橙留香Park的博客 2522

SimpleFOC STM32实战:基于F103与HAL库,剖析速度环与电流环的协同控制

本文详细介绍了基于STM32F103与HAL库的SimpleFOC实战应用,重点剖析速度闭环控制与电流环的协同工作原理。通过开发环境搭建、参数调试技巧及性能优化方案,帮助开发者高效实现无刷电机精准控制,适用于机器人、无人机等高精度应用场景。

weixin_29170327的博客 475

360安卓平台apk包加固签名, jarsigner使用详解

在360平台上传apk包时遇到如下问题: 警示:您的应用的签名算法采用“SHA256withRSA”,在部分4.2以下安卓版本的手机上不能安装。 解决办法: 1.先构建一个apk包出来, 打开android studio, 依次点击build->Generate signed bundle/apk, 选择apk, 点击next, 填写keystore配置, 选择发布版本, 构建. 2.打开360加固助手, 应用加固->签名设置, 去掉 启动自动签名,如下图: 3.然后推到加固页面, 开始加固a

JACK_GEN123的博客 1812

清华电子系保研面试全记录:五轮硬核考核+工程硕博专项解析(附真题)

本文详细解析了清华大学电子工程系保研面试的完整流程,重点剖析了其标志性的五轮专业面试(涵盖电路、电磁场、信号系统、计算机与AI)和综合组群面,并深入解读了工程硕博改革专项的考核要点与备战策略。文章提供了各专业组的真题示例与应对方法,旨在帮助电子信息相关专业学子系统准备,从容应对这场高强度的知识与综合素质挑战。

u0v1w2x3的博客 587

Anaconda启动失败,一直在loading application的问题

实战基础新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本

Tristan的博客 2771

Android上架App

上架平台: 360开放平台 百度开放平台 腾讯开放平台 魅族开放平台 华为开放平台 小米开放平台 小米云测试服务 VIVO开放平台 OPPO开放平台 360开放平台注意事项: 上传Apk后如果提示:警示:您的应用的签名算法采用“SHA256withRSA”,在部分4.2以下安卓版本的手机上不能安装。 解决方案: 链接:https://pan.baidu.com/s/1iW...

a1003434346的博客 462

程序进入hardfault之后查找原因的方法

如果在MCU运行程序的时候,进入了hardfault,该怎么办?

smart_boy__的博客 760

如何优化您的 Android 应用(Go 版)

原文地址:How to optimize your app for Android (Go edition) 原文作者:Raj Ajrawat 译文出自:掘金翻译计划 本文永久链接:github.com/xitu/gold-m… 译者:androidxiao 洞察力可帮助您创建适用于全球 Android 手机的应用程序 from:https://juejin.im/post/5b3...

ConceptCon 710

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

《Python星球日记》 第43天:机器学习概述与Scikit-learn入门

Code_流苏:在代码中寻诗意,在实践中觅真知 932

QCC304x系列开发教程(基础篇)之2.1-QCC3040之开发环境搭建

一、安装MDE 1.解压qualcomm_mde.win.2.4_installer_2.4.1.4压缩包,安装MDE_WIN_2.4.1.4_x64.exe,路径自定义 点击NEXT, 安装完成后,点击Finish. 完成安装后,桌面生成快捷方式

心跳包的博客 6075

MD5 SHA1 SHA256 SHA512 SHA1WithRSA RSA 的区别

转自:http://www.cnblogs.com/cxygg/p/9468653.html MD5 SHA1 SHA256 SHA512 这4种本质都是摘要函数,不通在于长度 MD5 是 128 位,SHA1 是 160 位 ,SHA256 是 256 位,SHA512 是512 位。 SHA1WithRSA 他的 核心算法是 先用sha1 去摘要,然后使用 RSA 加密。但是 他在 ...

xiejunna的博客 1万+

图神经网络实战(6)——使用PyTorch构建图神经网络

图数据集通常比简单的连接集合更加丰富,因为节点和边可以具有表示分数、颜色、单词等特征。包含这些额外信息在输入数据中对于生成最佳嵌入至关重要。在本节中,我们将使用 Cora 和 Facebook Page-Page 数据集,首先将它们视为表格数据集,观察香草神经网络在节点特征上的表现如何。然后,尝试在神经网络中加入拓扑信息,实现图神经网络 (Graph Neural Networks, GNN) 架构:一个同时考虑节点特征和边的简单模型。最后,我们将比较两种架构的性能。

盼小辉丶的博客 2万+

Java 签名(SHA1WithRSA、SHA256WithRSA、SHA256withECDSA)

RSA1、RSA256 签名 public static String MakeSign(String Data) { try { byte[] data = Data.getBytes(); byte[] keyBytes = base64String2Byte(PrivateKey); PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes); KeyFactory...

qq_41980051的博客 4199

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

SHA256withRSA (RSA2) 简单介绍

SHA1安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA) RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。 SHA1WithRSA:用SHA算...

极客on之路 1万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

360应用商店上架提示签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装

问题描述 前一段时间给公司一个新的App上架360应用商店,因为需要加固,便下载了最新版的360加固助手,加上助手挺方便的,加固签名一条龙。然而问题就出在了这里,拿加固签名之后的App上架,wtf???提示:您的应用签名算法采用“SHA256withRSA”,在部分4.2一下安卓版本的手机上不能安装。显然,是签名出问题了。我就纳闷了,用你自家的签名工具签名,上架你们自家的应用商店,提前签名有问题...

张三滴博客 4099

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

上一篇: DecimalFormat格式化
下一篇: windows下如何进行域名映射绑定ip
github_29667873
博客等级 码龄11年 2粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值