当前位置: 首页 > news >正文

在jar里限制指定的包名才可调用(白名单)。

1. 在jar包中定义一个接口,例如 用于检查传入的hash值是否匹配预设的值。
2. 在调用接口的地方,获取当前应用的hash值。
3. 将当前应用的hash值与预设的值进行比较,如果匹配,则允许调用接口;否则,拒绝调用。

一、调用者

public static Impl getInstance(Context context, ICallback iCallback){if (instance == null){if (checkHashForInstance(context)) {instance = new Impl();}} else {throw new SecurityException("validation failed during instance creation.");}}return instance;}
二、实现类
public class HashValidator {final static String whiltename ="com.xxx.xxxx";public static boolean checkHashForInstance(Context context) throws InsufficientPermissionException {// 获取当前应用的包名String packageName = context.getPackageName();// 计算包名的 HASH 值String calculatedHash = calculateHashFromPackageName(packageName);// 根据预设的 hash 值进行校验String presetHash = calculateHashFromPackageName(whiltename);Logs.d("package_name "+ packageName);if (!presetHash.equals(calculatedHash)) {// 校验失败,抛出自定义异常throw new InsufficientPermissionException("Insufficient permission during instance creation.");}// 校验成功return true;}private static String calculateHashFromPackageName(String packageName) {try {MessageDigest messageDigest = null;messageDigest = MessageDigest.getInstance("SHA-256");byte[] hashBytes = messageDigest.digest(packageName.getBytes());StringBuilder hexStringBuilder = new StringBuilder();// 将哈希字节数组转换为十六进制字符串for (byte hashByte : hashBytes) {hexStringBuilder.append(String.format("%02X", hashByte));}// 返回计算得到的哈希值return hexStringBuilder.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();// 在实际应用中可能需要处理 NoSuchAlgorithmException 异常return null;}}
}

相关文章:

在jar里限制指定的包名才可调用(白名单)。

1. 在jar包中定义一个接口,例如 用于检查传入的hash值是否匹配预设的值。 2. 在调用接口的地方,获取当前应用的hash值。 3. 将当前应用的hash值与预设的值进行比较,如果匹配,则允许调用接口;否则,拒绝调用。…...

python 提取PDF文字

使用pdfplumber,不能提取扫描的pdf和插入的图片。 import pdfplumberfile_path rD:\UserData\admindesktop\官方文档\1903_Mesh-Models-Overview_FINAL.pdf with pdfplumber.open(file_path) as pdf:page pdf.pages[0]print(page.extract_text()) # 所以文字prin…...

电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型

电气机械5G智能工厂数字孪生可视化平台,推进电气机械行业数字化转型。随着科技的不断发展,数字化转型已经成为各行各业发展的重要趋势。电气机械行业作为传统制造业的重要组成部分,也面临着数字化转型的挑战和机遇。为了更好地推进电气机械行…...

C# (WebApi)整合 Swagger

SpringBoot-整合Swagger_jboot整合swagger-CSDN博客 C# webapi 也可以整合Swagger webapi运行其实有个自带的HELP页面 但是如果觉得UI不好看,且没办法显示方法注释等不方便的操作,我们也可以整合Swagger 一、使用NuGet控制台安装Swagger 在菜单中选择…...

导入excel某些数值是0

目录 导入excel某些数值是0数据全部都是0原因解决 部分数据是0原因解决 导入excel某些数值是0 数据全部都是0 有一列“工单本月入库重量”全部的数据都是0 原因 展示的时候,展示的字段和内表需要展示的字段不一致,导致显示的是0。 解决 修改展示的字…...

wo-gradient-card是一款采用uniapp实现的透明辉光动画卡片

采用uniapp-vue3实现,透明辉光动画卡片,卡片内容包含标签、标题、副标题、图片 支持H5、微信小程序(其他小程序未测试过,可自行尝试) 可用于参考学习 可到插件市场下载尝试: https://ext.dcloud.net.cn/plu…...

Spark: a little summary

转眼写spark一年半了,从之前写机器学习组件、做olap到后面做图计算,一直都是用的spark,惭愧的是没太看过里面的源码。这篇文章的目的是总结一下Spark里面比较重要的point,重点部分会稍微看一下源代码,因为spark是跟cli…...

018—pandas 生成笛卡尔积排列组合合并多列字符串数据

思路: 本需求需要将给定的几列数据,生成一个排列组合形式的数据列,利用到 Pandas 多层索引生成的笛卡尔积的方法。 二、使用步骤 1.引入库 代码如下(示例): import pandas as pd2.读入数据 代码如下&…...

【算法与数据结构】链表、哈希表、栈和队列、二叉树(笔记二)

文章目录 四、链表理论五、哈希表理论五、栈和队列理论5.1 单调栈 六、二叉树理论6.1 树的定义6.2 二叉树的存储方式6.3 二叉树的遍历方式6.4 高度和深度 最近博主学习了算法与数据结构的一些视频,在这个文章做一些笔记和心得,本篇文章就写了一些基础算法…...

bugku3

前女友 md5 进去又是讴歌乱进的东西 源代码 看到code.txt,访问一下 <?php if(isset($_GET[v1]) && isset($_GET[v2]) && isset($_GET[v3])){$v1 $_GET[v1];$v2 $_GET[v2];$v3 $_GET[v3];if($v1 ! $v2 && md5($v1) md5($v2)){if(!strcmp($v3,…...

相机的白平衡

相机的白平衡是指相机根据拍摄环境的光源色温&#xff0c;调整图像中白色看起来应该是白色的功能。白平衡的设置对于确保图像中的颜色准确性非常重要&#xff0c;因为不同光源的色温会使白色看起来有不同的色调。 通常&#xff0c;相机提供了一些预设的白平衡模式&#xff0c;…...

刷题日记-Day2- Leedcode-977. 有序数组的平方,209. 长度最小的子数组,59. 螺旋矩阵 II-Python实现

刷题日记Day2 977 有序数组的平方209. 长度最小的子数组59. 螺旋矩阵 II 977 有序数组的平方 链接&#xff1a;https://leetcode.cn/problems/squares-of-a-sorted-array/description/ 给你一个按 非递减顺序 排序的整数数组 nums&#xff0c;返回 每个数字的平方 组成的新数组…...

Linux命令-chcon命令(修改对象(文件)的安全上下文)

说明 chcon命令 是修改对象&#xff08;文件&#xff09;的安全上下文&#xff0c;比如&#xff1a;用户、角色、类型、安全级别。也就是将每个文件的安全环境变更至指定环境。使用 --reference 选项时&#xff0c;把指定文件的安全环境设置为与参考文件相同。chcon命令位于 /…...

【漏洞复现】大华DSS视频管理系统信息泄露漏洞

Nx01 产品简介 大华DSS数字监控系统是一个在通用安防视频监控系统基础上设计开发的系统&#xff0c;除了具有普通安防视频监控系统的实时监视、云台操作、录像回放、报警处理、设备治理等功能外&#xff0c;更注重用户使用的便利性。 Nx02 漏洞描述 大华DSS视频管理系统存在信…...

websocket了解下

websocket请求长啥样 GET /chat HTTP/1.1 Host: example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ Sec-WebSocket-Version: 13 啥是websocket websocket是http的一种&#xff0c;服务器可以主动向客户端推送信息&#xff0c;…...

docker install private registry 【docker 安装 registry 仅证书认证】

预备条件&#xff1a; 安装docker 我们设定镜像仓库域名为registry01.dev.com 配置/etc/hosts 192.168.23.51 registry01.dev.com安装 registry #!/bin/bashreg_ip$1 reg_n$2 reg_port$3if [ $# -eq 0 ]; thenecho "Usage: $0 [reg_ip] [registry_name]"echo &q…...

JavaWeb——004Maven SpringBootWeb入门

一、Maven 1、什么是maven&#xff1f; 2、Maven的作用是什么&#xff1f;&#xff08;3种&#xff09; 1.1、方便的依赖管理 依赖管理&#xff1a;有了Maven&#xff0c;我们就不用再手动导入Jar包了&#xff0c;我们只需要在配置文件当中&#xff0c;简单描述一下项目所需要…...

数据结构与算法-常用排序算法

一、常用排序说明 当涉及排序算法时&#xff0c;理解每个算法的工作原理、时间复杂度和空间复杂度是至关重要的。下面对常用排序算法进行详细说明&#xff1a; 1、冒泡排序&#xff08;Bubble Sort&#xff09;&#xff1a; 工作原理&#xff1a;比较相邻的元素并交换&am…...

链表之“无头单向非循环链表”

目录 ​编辑 1.顺序表的问题及思考 2.链表 2.1链表的概念及结构 2.2无头单向非循环链表的实现 1.创建结构体 2.单链表打印 3.动态申请一个节点 3.单链表尾插 4.单链表头插 5.单链表尾删 6.单链表头删 7.单链表查找 8.单链表在pos位置之前插入x 9.单链表删除pos位…...

一休哥助手网页版如何使用

一休哥助手网页版可以使用GPT4提问了&#xff0c;具体操作流程如下&#xff1a; 1.登录网页版一休哥助手&#xff08;首次打开页面时&#xff0c;初始化久一点&#xff0c;请耐心等一下&#xff09; https://www.fudai.fun 2.登录后就可以使用GPT4了 3.你还可以自定义系统角色…...

SDMatte模型API接口安全设计:防止恶意调用与资源滥用

SDMatte模型API接口安全设计&#xff1a;防止恶意调用与资源滥用 1. 引言&#xff1a;API安全的重要性 在将SDMatte模型部署为公开API服务时&#xff0c;安全防护是首要考虑的问题。我们曾遇到一个真实案例&#xff1a;某图像处理API上线一周内&#xff0c;由于缺乏防护措施&…...

别再为Vue路由history模式发愁!宝塔面板Nginx一键配置指南

宝塔面板Nginx完美解决Vue路由history模式刷新404问题 每次在宝塔面板部署Vue项目时&#xff0c;最让人头疼的就是history路由模式下刷新页面出现的404错误。这个问题看似简单&#xff0c;却困扰着不少前端开发者。今天我们就来彻底解决这个痛点&#xff0c;让你在宝塔面板中轻…...

基础知识:理解虚拟资产 / 数字商品 / 实用代币 / 稳定币 / 资产支持代币 / 数字收藏品 / 数字证券

比特币等虚拟资产全景与深度解析&#xff1a;超越“数字货币”的多元生态比特币等虚拟资产的世界&#xff0c;远比“一种数字货币”要丰富和复杂得多。理解它的第一步&#xff0c;就是先认识这个大家族里都有哪些成员。为了帮你建立清晰的概念&#xff0c;我们可以把虚拟资产看…...

旧Mac焕新指南:使用OpenCore Legacy Patcher打造启动盘

旧Mac焕新指南&#xff1a;使用OpenCore Legacy Patcher打造启动盘 【免费下载链接】OpenCore-Legacy-Patcher 体验与之前一样的macOS 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 当您的Mac设备因硬件限制无法升级到最新macOS系统时&am…...

造相 Z-Image 电商提效:淘宝主图/拼多多详情页/小红书种草图量产

造相 Z-Image 电商提效&#xff1a;淘宝主图/拼多多详情页/小红书种草图量产 1. 电商视觉内容生产的痛点与机遇 电商卖家每天面临的最大挑战之一就是视觉内容的生产。无论是淘宝主图、拼多多详情页还是小红书种草图文&#xff0c;都需要大量高质量的图片来吸引用户眼球。传统…...

Python量化交易入门:利用Baostock API高效获取股票历史数据

1. 为什么选择Baostock获取股票数据&#xff1f; 第一次接触量化交易时&#xff0c;最头疼的就是数据来源问题。市面上的数据接口要么收费昂贵&#xff0c;要么数据质量参差不齐。直到发现了Baostock这个宝藏工具&#xff0c;我的量化研究才真正走上正轨。 Baostock最大的优势在…...

__attribute__((unused))的妙用:如何优雅地处理未使用的变量与参数

1. 为什么我们需要__attribute__((unused)) 在C/C开发中&#xff0c;编译器警告就像一位严格的代码审查员&#xff0c;时刻提醒我们可能存在的问题。但有时候&#xff0c;我们确实需要定义一些暂时不使用的变量或参数&#xff0c;比如为了保持接口兼容性&#xff0c;或者在某些…...

单片机电子产品开发全流程指南

基于单片机的电子产品开发全流程解析1. 项目概述现代电子产品设计中&#xff0c;单片机已成为实现复杂功能的核心器件。从智能家居设备到健康监测仪器&#xff0c;各类产品都依赖单片机实现可编程控制功能。本文将系统介绍基于单片机的电子产品开发全流程&#xff0c;涵盖从需求…...

ESP32高精度低延迟ADC自定义库:寄存器级模拟读取优化

1. 项目概述ESP32AnalogRead Custom是由嵌入式开发者 Khrisna Ijlal Bachri 针对 ESP32 系列微控制器定制优化的模拟输入读取库。该库并非官方 ESP-IDF ADC 驱动的简单封装&#xff0c;而是聚焦于解决实际工程中高频采样、多通道同步、噪声抑制与低功耗场景下的典型痛点。其核心…...

SlopeCraft终极指南:如何轻松将任何图片转换为Minecraft立体地图画

SlopeCraft终极指南&#xff1a;如何轻松将任何图片转换为Minecraft立体地图画 【免费下载链接】SlopeCraft Map Pixel Art Generator for Minecraft 项目地址: https://gitcode.com/gh_mirrors/sl/SlopeCraft 你是否曾梦想将心爱的照片、动漫角色或艺术作品搬进Minecra…...