Android - 验证XML的签名

2023-12-30

我已经在网络上签署了 XML 文档(通过带有 RSA 和 X509 标签的纯 Java),并且我已经实现了 XML pull 解析器 - 在将 XML 文档中的一些信息解析到特定 URL 之前,我需要验证该文档是否正确一。你知道如何检查XML签名吗?

Thanks

edit:

我的 XML 文件如下所示:

 <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
  <application id="1">
  <appversion>1.0</appversion> 
  <obligatory>yes</obligatory> 
  <update>http://www.xyz.....</update> 
  <check>http://www.xyz.....</check> 
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo>
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments" /> 
      <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> 
      <ds:Reference URI="#1">
        <ds:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> 
        <ds:DigestValue>fuv...</ds:DigestValue> 
    </ds:Reference>
  </ds:SignedInfo>
  <ds:SignatureValue>PC0+4uO4...</ds:SignatureValue> 
  <ds:KeyInfo>
  <ds:KeyValue>
    <ds:RSAKeyValue>
      <ds:Modulus>gEs/Fn2Gd5evwhlUgoS3...</ds:Modulus> 
      <ds:Exponent>AQAB</ds:Exponent> 
    </ds:RSAKeyValue>
  </ds:KeyValue>
  <ds:X509Data>
    <ds:X509IssuerSerial>
      <ds:X509IssuerName>CN=abc abc,OU=abcs,O=abc,L=abc,ST=abc,C=abc</ds:X509IssuerName> 
      <ds:X509SerialNumber>123456...</ds:X509SerialNumber> 
    </ds:X509IssuerSerial>
    <ds:X509SubjectName>CN=abc abc,OU=abcs,O=abc,L=abc,ST=abc,C=abc</ds:X509SubjectName> 
    <ds:X509Certificate>MIIDhzCCAm+gAwIBAgI...</ds:X509Certificate> 
  </ds:X509Data>
  </ds:KeyInfo>
 </ds:Signature>

在 J2EE Java 中你会使用javax.xml.crypto详细信息请参见此处

http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/ http://java.sun.com/developer/technicalArticles/xml/dig_signature_api/

然而,这些并不是标准 Android 包的一部分。

It may制作您自己所需的源代码包的工作量是可管理的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android - 验证XML的签名 的相关文章

  • 如何在Android 4.2中更改Action Bar选项菜单的背景颜色?

    我想更改 Android 4 2 中选项 溢出 菜单的背景颜色 我已经尝试了所有方法 但它仍然显示主题设置的默认颜色 我使用了以下代码和 XML 配置 MainActivity java public class MainActivity
  • 使用busybox在后台安装apk

    我可以在 root 设备上使用 busybox 在后台安装 apk 吗 我看到类似的东西 但它不起作用 process install CommandCapture command new CommandCapture 0 chmod 77
  • Twowayview 滚动时自动添加内边距

    我在用双向视图 https github com lucasr twoway view在我的一个项目中 这是android的扩展回收者视图 https developer android com reference android supp
  • putExtra() 和 setData() 之间的区别

    putExtra 和 setData 有什么区别 我已经阅读了 android 文档 但没有太大帮助 还有之前的一个问题Intent setData 与 Intent putExtra https stackoverflow com que
  • 对话框片段嵌入取决于设备

    在我的应用程序中 用户从联系人或通话记录中选择电话号码 选择联系人非常简单 并且在手机和平 板电脑上都可以很好地工作 i e 在手机上会弹出新的全屏活动 在桌子上我会看到带有联系人列表的漂亮弹出对话框 似乎无法从通话记录中选择电话号码 因此
  • 如何在 Perl 中发送此 SOAP XML?

    我必须发送下面的 XML 我有no idea从哪儿开始 我知道我需要在 Perl 中查找 SOAP 但大致就是这样
  • 在 Python 中使用 XPath 和 LXML

    我有一个 python 脚本 用于解析 XML 并将某些感兴趣的元素导出到 csv 文件中 我现在尝试更改脚本以允许根据条件过滤 XML 文件 等效的 XPath 查询将是 DC Events Confirmation contains T
  • 我如何从android中的复选框获取值

    我想获取复选框中所选项目的名称 但我只得到一些字母数字 如何从复选框中获取所选项目的名称 public View getView int position View convertView ViewGroup parent View vie
  • 作为附件的 Android 设备

    我有 2 个 Android 设备 我想用 USB OTG 电缆连接它们 并在两个设备之间进行来回通信 据我了解 一台 Android 设备将充当 USB 主机 运行 4 4 的 Nexus 7 另一台 Android 设备将充当 USB
  • 无法在 Android 上编译 avahi

    我是交叉编译的新手 我被分配了使用android补丁的任务http avahi org ticket 354 http avahi org ticket 354将 avahi 核心编译为 android ndk build avahi co
  • AltBeacon 服务位于单独的 Android 进程中

    我需要帮助 有一个适用于 Xamarin Android 的应用程序 在其中 启动了一个与 AltBeacon 库配合使用的服务 在此服务中 创建了一个线程 在该线程中不断扫描信标 服务以 StartForeground 启动 该服务应该有
  • ProgressBar.setInminateDrawable() 不起作用

    当我尝试更改我的 indeteminateDrawable 进度条就消失了 我必须更改我的进度条的可绘制对象 我尝试了invalidate requestLayout等 我不知道如何解决它 谢谢 这里的代码 progressBar setI
  • Android volley使用RequestFuture.get()时出现超时异常

    在我的片段中 我尝试使用 TMDB 的开放电影数据库来获取有关 正在播放 电影的详细信息 如果我使用 RequestFuture get time TimeUnit 方法来执行此齐射请求 我总是会收到超时错误 如果我在 Safari 中手动
  • 如何使用 MotionLayout 调整 TextView 的大小

    我正在尝试创建一个CollapsingToolbar动画使用MotionLayout 我已经成功地将所有内容设置为动画 使其表现得像CollapsingToolbar具有高度的灵活性 这意味着我可以轻松创建很棒的动画 而无需编写大量代码 我
  • 运行 Android 应用程序时出现错误

    我已经使用 Eclipse 创建了一个 Android 应用程序 但应用程序未在 AVD 上运行 它显示 不幸的是已停止工作 日志猫消息如下 07 29 04 59 50 789 W dalvikvm 784 threadid 1 thre
  • 将触摸事件从 NestedScrollView 传递到父视图

    我在 NestedScrollView 下方有一个 ViewPager 宽度一些顶部填充 以及 ClipToPadding false 和透明背景 如图像 我的 ViewPager 无法获取触摸事件并且无法工作 我怎么解决这个问题 我无法更
  • Android 10 请求 ACTIVITY_RECOGNITION 权限

    我试图遵守 Google 的要求 为 Android 10 请求 ACTIVITY RECOGNITION 权限 但我似乎不明白为什么没有显示权限弹出窗口 就像其他权限 即位置 存储等 一样 我的代码是 if ContextCompat c
  • 如何从图库动态卸载图像?

    我有自定义 ImageView public class ShadowedImageView extends ImageView private Paint mPaint public Bitmap bitmap null private
  • 如果我的应用程序安装在 SD 卡上,私人数据也在那里吗?

    我假设应用程序的私有数据 例如 SharedPreferences 和 SQLite 数据库 位于手机的内部存储而不是 SD 卡上 即使应用程序本身安装在 SD 卡上 我在任何地方都找不到对此的简单明确的确认 有人可以确认一下吗 是的 私有
  • Android Google 地图无法在当前主题中找到样式“mapViewStyle”

    添加谷歌地图视图时 我扩展了MapView 使用xml编辑器将其添加到活动中 并将我的谷歌地图api密钥手动添加到布局xml文件中 我的权限在清单文件中允许互联网 我想知道的是 在 xml 编辑器中 我收到错误 无法在当前主题中找到样式 m

随机推荐

  • 我如何获取服务器端的 HTML5 本地存储值

    我是一名 Net开发人员 我知道HTM5本地存储是客户端存储技术 我想获取服务器端本地存储的数据 为了从服务器端获取 cookie 值 我们有Request Cookie在 ASP NET 中 有没有类似的解决方案可以直接在服务器端获取本地
  • Angular MatPaginator 未初始化

    我有 2 个组件 两者都有 mat table 和分页器 分页适用于一个组件 但不适用于另一组件 尽管代码相似 下面是我的html div class mat elevation z8 div
  • 确定平均课程成绩的程序[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 该程序应该将包含学生测验成绩的文本文件写入另一个包含学生姓名的文件中 并为学生分配成绩 include
  • Google 帐户身份验证器在运行时请求许可

    我使用服务中的 AccountManager getAuthToken 来访问 Googledocs 和 Spreadsheet API 由于我是从后台执行此操作并且不想中断 user 因此我允许 accountManager 在需要用户交
  • Firebase minInstances 被忽略

    我们的目标是为 Firebase 云功能设置最小实例数 以便能够处理意外的流量突发 我们已经关注了这些说明 https firebase google com docs functions manage functions reduce t
  • 如何在特定条件下删除重复项

    我有一个 mysql 表 我想在特定条件下删除重复项 如果名称 cl 1 cl 2 cl 3 cl 4 cl 5 cl 6 完全相同 我想删除 否则如果其中一个不同且其他列相同 则无需删除 例如我想删除第 1 行和第 4 行而不是第 7 行
  • SQL 使用内连接将不存在的行的聚合值设为 0

    我正在使用 SQL Server 查询这三个表 它们看起来像 有一些额外的列 但不那么相关 客户 gt ID 姓名 地址 gt ID 街道 StreetNo CustomerId 销售 gt 地址 ID 周 总计 我想获得每周和客户的总销售
  • 将tinyint映射为布尔休眠

    我在 MySQL 表 TINYINT 1 中有一个 BOOLEAN 类型 并且我试图在实体中映射布尔字段 但这会生成异常 org hibernate HibernateException Wrong column type in maegu
  • SQL Server 存储过程转换为 SSIS 包

    问题 目前我们有大量的存储过程 很长 长达 10 000 行 这些存储过程是由不同的开发人员在过去 10 年中根据不同的需求编写的 现在管理那些复杂 长的存储过程 没有适当的文档 变得很困难 我们计划将这些存储过程移至 SSIS ETL 包
  • PostgreSQL:当将整数转换为非整数类型以强制 PostgreSQL 中的浮点除法时,我应该使用哪种数字类型?

    我知道StackOverflow上有很多整数除法问题 但我没有看到这个 与许多编程语言类似 如果两个操作数都是整数 PostgreSQL 就会执行整数除法 如果一个人有 SELECT s id AS student id COUNT DIS
  • 我的 ASP.NET MVC SelectList 有什么问题?

    我正在尝试使用 SelectList 我的视图之一 但它只是未正确填充 它获得了正确数量的条目 4 但它们都读取了System Web Mvc SelectListItem 我启动了代码调试器 发现发生了一些奇怪的事情 我一定做错了什么 但
  • 如何获得 R 时间序列中下一行和上一行之间的差异?

    我有一个相当大的时间序列 包含 4 个变量的大约 14k 个观察值 date x y z 我怎样才能 与功能相反diff df vector lag 1 它计算当前值之间的差值 t 和上一个 t 1 计算每个值与下一个值 t 1 和之前的值
  • 从 DllMain() 锁定时,Visual Studio 2012 中的 C++11 std::mutex 死锁

    我看到了僵局std mutex当互斥体被锁定时DllMain 下面是一个最小的 DLL 测试用例 它向我展示了这个问题 我的实际代码执行互斥锁定 因为它使用的成员函数也可以在正常函数期间在初始化之外使用 我认为问题是调度程序之间的死锁 如调
  • 模仿 Python 产量的惯用 Clojure 方式

    我正在迭代一个列表 边走边建立状态 偶尔当我遇到某个哨兵时 我会返回一个结果 如果我用 Python 来做这件事 我会懒惰地yield结果 跟踪函数本地范围内的状态 this is simplified for illustration d
  • 计算列表差异[重复]

    这个问题在这里已经有答案了 在Python中 计算两个列表之间差异的最佳方法是什么 example A 1 2 3 4 B 2 5 A B 1 3 4 B A 5 If 顺序并不重要 您可以简单地计算集合差 gt gt gt set 1 2
  • 在 Ada 中实现具有访问类型的抽象函数

    我有一个名为 Statements 的包 其中包含一个名为 Statement 的抽象类型和一个名为execute 的抽象函数 在另一个包中 我有一个CompoundStatement 类型 它是一个Statement 类型 它实现了exe
  • 如何在 WP7 silverlight 中将网格背景更改为图像?

    我正在尝试在 WP7 silverlight 中为网格控件设置背景 我需要以编程方式完成此操作 而不是在设计中 我尝试过类似的东西 ContentPanel Background new BitmapImage new Uri Images
  • 关于最小化代码和最大化数据哲学的思考

    我听说过最小化代码和最大化数据的概念 并且想知道其他人可以就我在构建自己的系统时如何 为什么应该这样做提供什么建议 通常 数据驱动的代码更易于阅读和维护 我知道我见过数据驱动被推向极端并且最终变得非常不可用的情况 我正在考虑我使用过的一些
  • Volusion API - 按日期范围导出订单

    我想按计划按日期范围导出 Volusion 订单 select from orders o where o OrderDate gt 7 20 2015 AND o OrderDate lt 7 23 2015 这可能吗 看来我的网址只能做
  • Android - 验证XML的签名

    我已经在网络上签署了 XML 文档 通过带有 RSA 和 X509 标签的纯 Java 并且我已经实现了 XML pull 解析器 在将 XML 文档中的一些信息解析到特定 URL 之前 我需要验证该文档是否正确一 你知道如何检查XML签名