apk獲取服務器時間文件名,如何根據APK文件獲取應用程序簽名時間

至少有三種方法可以獲得像簽名時間這樣的東西。有第一種是使用keytool:

$ keytool -printcert -jarfile sample.apk

Signer #1:

Signature:

Owner: CN=GService inc, OU=G Service inc, O=G, L=New York, ST=New York, C=US

Issuer: CN=GService inc, OU=G Service inc, O=G, L=New York, ST=New York, C=US

Serial number: 6f30f864

Valid from: Thu Dec 17 04:12:27 PST 2015 until: Wed Dec 12 04:12:27 PST 2035

Certificate fingerprints:

MD5: 4D:36:65:14:59:5B:74:8F:2C:9D:92:30:F6:1D:90:8A

SHA1: A8:85:7B:72:4C:EE:55:83:09:D5:AC:5D:1A:02:80:C5:F6:83:2B:40

SHA256: 04:A7:24:9F:35:D5:8D:7E:F6:0F:73:81:35:5D:23:16:0D:FC:EA:61:C4:15:61:CC:06:8D:36:D9:C6:55:12:B7

Signature algorithm name: SHA256withRSA

Version: 3

Extensions:

#1: ObjectId: 2.5.29.14 Criticality=false

SubjectKeyIdentifier [

KeyIdentifier [

0000: C1 C5 19 32 72 47 46 C5 01 CC 4B AF 12 40 3D D2 [email?protected]=.

0010: B5 52 45 5E .RE^

]

]

這可以讓你的證書已經創建了可能的時間:Thu Dec 17 04:12:27 PST 2015。

二是使用jarsigner:

$ jarsigner -verify -verbose sample.apk

sm 4284 Wed Apr 13 11:03:18 PDT 2016 AndroidManifest.xml

sm 9193 Wed Apr 13 11:03:18 PDT 2016 res/drawable-hdpi-v4/ic_launcher.png

sm 5057 Wed Apr 13 11:03:18 PDT 2016 res/drawable-mdpi-v4/ic_launcher.png

sm 14068 Wed Apr 13 11:03:18 PDT 2016 res/drawable-xhdpi-v4/ic_launcher.png

sm 1408 Wed Apr 13 11:03:18 PDT 2016 resources.arsc

sm 20388 Wed Apr 13 11:03:18 PDT 2016 classes.dex

s 523 Wed Apr 13 11:03:18 PDT 2016 META-INF/MANIFEST.MF

576 Wed Apr 13 11:03:18 PDT 2016 META-INF/CERT.SF

1368 Wed Apr 13 11:03:18 PDT 2016 META-INF/CERT.RSA

s = signature was verified

m = entry is listed in manifest

k = at least one certificate was found in keystore

i = at least one certificate was found in identity scope

這讓你似乎是在APK中的所有條目的最后修改時間。他們在這個APK中都是一樣的,但他們有時會有所不同。所有最后修改時間可能必須大于“有效期”的日期。

第三個選項是用Java編程方式使用JarFile:

private static void printCertInfo(String jarPath) throws Exception {

// verify = true is key here

JarFile apkFile = new JarFile(jarPath, true);

JarEntry androidManifestEntry = apkFile.getJarEntry("AndroidManifest.xml");

if (androidManifestEntry == null) {

System.err.println("APK has no AndroidManifest.xml");

System.exit(-1);

}

// Need to fully read stream to verify cert

System.out.println("Android manifest probably signed: " + androidManifestEntry.getLastModifiedTime());

ByteStreams.copy(apkFile.getInputStream(androidManifestEntry), ByteStreams.nullOutputStream());

// Assuming only signed with a single cert (not always true, but you get the idea)

X509Certificate cert = (X509Certificate) androidManifestEntry.getCertificates()[0];

System.out.println("Android manifest cert probably created: " + cert.getNotBefore());

System.out.println("Full cert: " + cert.toString());

}

你可能會認為你可以使用androidManifestEntry.getCodeSigners()[0].getTimestamp()但它總是null,我不知道它是什么。上面的代碼給出了這樣的輸出:

Android manifest probably signed: 2016-04-13T18:03:18Z

Android manifest cert probably created: Thu Dec 17 04:12:27 PST 2015

Full cert: [

[

Version: V3

Subject: CN=GService inc, OU=G Service inc, O=G, L=New York, ST=New York, C=US

Signature Algorithm: SHA256withRSA, OID = 1.2.840.113549.1.1.11

// ** SNIP -- you get the idea **

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385728.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大牛手把手教你!2021大廠Java面試經歷

我聽到的一些發聲 你們賺的錢已經可以了: 我一個發小是做土木工程的,上海大學博士,參與很多著名建筑的工程,但是從薪資上看,還不如一些稍微像樣的公司的6年多的高級開發。為什么?這就是行業的紅利&#xf…

登錄華為賬戶顯示無法連接服務器,App提示連接不到服務器

App提示連接不到服務器 內容精選換一換本章節指導您使用MongoDB客戶端,通過彈性云服務器內網方式連接GaussDB(for Mongo)集群實例。操作系統使用場景:彈性云服務器的操作系統以Linux為例,客戶端本地使用的計算機系統以Windows為例。目標實例必…

大牛深入講解!9次Java面試經驗總結

阿里巴巴Java崗面試題分享 1.HashMap 的內部結構?內部原理?和 HashTable 的區別,假如發?了 hash 碰撞,如何設計能讓遍歷效率?? 2.講一講講講 ConcurrentHashMap吧。 3.講一下JVM虛擬機內存結構,以及它…

ajax不支持post,AJAX不能正確發送POST變量

你sendMessage功能是不完全正確 - 看看這看看它是否有幫助。在最初檢查的receiveReq狀態不參照實例化XMLHttpRequest對象sendReq功能 - 也,請求絕不會因為open和send電話是代碼內發送,即使它已經使用sendReq檢查響應的塊...var sendReq getXmlHttpReque…

大牛深入講解!最經典的HashMap圖文詳解

棧和隊列部分(10) 設計一個有getMin功能的棧(士★☆☆☆) 由兩個棧組成的隊列(尉★★☆☆) 如何僅用遞歸函數和棧操作逆序一個棧(尉★★☆☆) 貓狗隊列(士★☆☆☆&am…

服務器幾種系統,服務器有幾種操作系統

服務器有幾種操作系統 內容精選換一換公共鏡像是由華為云官方提供的鏡像,適配了彈性云服務器或裸金屬服務器兼容性并安裝了必要的初始化插件,所有用戶均可使用,涵蓋大部分主流操作系統。本文介紹公共鏡像類型和公共鏡像特點。華為云提供的公共…

Java面試題2021,文末有福利

正文 做了 3~5 年編程開發,你已經積累了不少項目經驗,擴寬了技術廣度,也許已發力成為團隊管理者。到了這個階段,大家卻常有這種感受:感覺自己卡在瓶頸進步緩慢,技術水平很難像早期一樣實現大幅突破&#x…

移動端上傳大文件到服務器,android上傳大文件到服務器地址

android上傳大文件到服務器地址 內容精選換一換安裝傳輸工具在本地主機和Windows云服務器上分別安裝數據傳輸工具,將文件上傳到云服務器。例如QQ.exe。在本地主機和Windows云服務器上分別安裝數據傳輸工具,將文件上傳到云服務器。例如QQ.exe。本地磁盤映…

moxa服務器udp協議設定,Moxa Nport串口服務器漏洞全球統計報告(Moxa Nport Vulnerability Global Census Report)...

ICS-ALERT-16-099-01ICS-CERT在4月8日發布了ICS-ALERT-16-099-01,報告中指出了Moxa NPort model 6110, firmware Version 1.13,Moxa NPort model 5110, firmware Version 2.5,Moxa NPort models 5130 and 5150, firmware Version 3.5, andMoxa NPort models 6150, 6…

Java面試題中高級,java引用數據類型和基本數據類型區別

4步套路,解決動態規劃問題 1、確定問題狀態 提煉最后一步的問題轉化 2、轉移方程,把問題方程化 3、按照實際邏輯設置初始條件和邊界情況 4、確定計算順序并求解 結合實例感受下: 你有三種硬幣,分別面值2元,5元和7…

小企業服務器設置位置,小企業服務器配置

小企業服務器配置 內容精選換一換使用企業主機安全服務,您將可以同時使用消息通知服務接收告警通知信息,使用統一身份認證服務管理用戶權限,利用云審計服務審計用戶行為。企業主機安全服務的Agent軟件可安裝在華為云ECS服務器/BMS服務器/HECS…

Java面試題及答案2020,kafka教程分享

三面頭條 面試崗位是后臺研發工程師,地點選擇了上海,通過大佬內推,跳過死亡筆試,加上疫情期間,所以直接視頻面,從3點開始,斷斷續續到晚上8點結束。 一共三輪技術面試,每一輪都要寫代…

Java面試題及答案2020,安卓java編程軟件app

一面(一個半小時) 首先自我介紹 了解Web層開發?數據庫索引了解么?聚簇索引,非聚簇索引?索引分類? 了解數據庫都由哪些引擎?分別有什么區別和使用場景? 了解分布式&…

Java面試題及答案,java對外提供接口

Redis簡介 Redis與Memcached區別Redis優點Redis缺點 Redis數據類型 StringHashListSetSorted set Redis事務 MULTI&EXEC(原子執行,并非互斥)WATCH&UNWATCH(原子執行樂觀鎖) Redis分布式鎖 排他鎖 SETNX帶有…

Java面試題及答案,我把所有Java框架整理成了PDF

第1章 初識Redis 初識Redis,帶領讀者進入Redis的世界,了解它的前世今生、眾多特性、應用場景、安裝配置、簡單使用,最后對Redis發展過程中的重要版本進行說明,可以讓讀者對Redis有一個全面的認識。 1.1Redis特性 1.2Redis使用場景…

Java面試題庫,java四舍五入保留小數點后兩位輸出

第5章 持久化 持久化,Redis的持久化功能有效避免因進程退出造成的數據丟失問題,本章首先介紹RDB和AOF兩種持久化配置和運行流程,其次對常見的持久化問題進行定位和優化,最后結合Redis常見的單機多實例部署場景進行優化。 5.1 RDB …

Java面試題庫,java核心技術第十版下載

阿里巴巴篇 1.扎實的計算機專業基礎,包括算法和數據結構,操作系統,計算機網絡,計算機體系結構,數據庫等2.具有扎實的Java編程基礎,理解IO、多線程等基礎框架3.熟練使用Linux系統的常用命令及shell有一定了…

Java面試題整理,java常用排序算法圖解

微服務架構 ①微服務概念: ②Spring Cloud微服務架構: 海量數據處理 ①:經典的海量數據處理面試題 高可用架構 ①基于 Hystrix 實現高可用: ②限流: ③熔斷: 高并發架構 ①消息隊列: ②搜索…

Java面試題2020,單擊更改以將java安裝到其他文件夾

工作的前兩年 如果你不能拼爹,或者不想拼爹,最好的方法是拼實力。 合抱之木,生于毫末;九層之臺,起于壘土;千里之行,始于足下。 所以,你必須要從基層做起。當然,所謂的基…

Java面試題中高級,javaif循環語句

微服務是什么 微服務起源于2005年Peter Rodgers博士在云端運算博覽會提出的微Web服務(Micro-Web-Service),根本思想類似于Unix的管道設計理念。2014年,由Martin Fowler 與 James Lewis共同提出了微服務的概念,定義了微服務架構風格是一種通過…