首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >" sha256“和不是sha256

" sha256“和不是sha256
EN

Stack Overflow用户
提问于 2018-04-03 18:45:08
回答 2查看 950关注 0票数 1

我已经替换了TPK文件()中的映像,但它不会安装。

在TPK文件中,有两个签名文件signature1.xml和Auther-signature.xml。

在他们两人中,他们都有:

代码语言:javascript
复制
<Reference URI="shared/res/ACL-splash.png">
<DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256"></DigestMethod>
<DigestValue>wgvWtVSJns8mCgUPfBZ/2ZTBfKqR02zW0MD4tA3cIBE=</DigestValue>
</Reference>

它链接到有关sha256值的信息,但当我找到已编辑文件的sha256值时,会得到以下内容:

Sha1:53f3002da277c92d86e1c356ded39ce3dd91512b

463e0102f54ee7370b84f5b1570ac0d77791244d5b2b06f023e0e4831a23bfe4:Sha256

它们都不是合适的长度。

此外,原始文件与所列内容不同:

Sha1:4c3e051a5ef68c63a45b38aba63e1038d318bc3

c20bd6b554899ecf260a050f7c167fd994c17caa91d36cd6d0c0f8b40ddc2011:sha256

当您在tizen电话上安装修改后的文件时,其内容如下:

代码语言:javascript
复制
__return_cb req_id[29370002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[error] val[79] error message: Invalid signature. Signed with wrong key, changed signature file or changed package file
__return_cb req_id[29370002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[end] val[fail]
processing result : SIGNATURE_INVALID_HASH_SIGNATURE [79] failed
spend time for pkgcmd is [6309]ms

(忽略pkgid部分)

但是,当您将等号添加到您输入的散列的末尾时,它会说:

代码语言:javascript
复制
__return_cb req_id[29870002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[error] val[32]
__return_cb req_id[29870002] pkg_type[tpk] pkgid[VZtRZw5cZM] key[end] val[fail]
processing result : CERTIFICATE_INVALID [32] failed
spend time for pkgcmd is [6251]ms
EN

回答 2

Stack Overflow用户

发布于 2018-04-04 23:49:43

要退出tizen (.tpk),您需要使用tizen。

重新签包裹。

Windows:

代码语言:javascript
复制
tizen package -t tpk -s MyProfile -- C:\Users\workspace\basic\Debug\org.tizen.basic-1.0.0-i386.tpk
Author certificate: C:\tizen-sdk-data\keystore\author\mycert.p12
Distributor1 certificate : C:\tizen-sdk\tools\certificate-generator\certificates\distributor\tizen-distributor-signer.p12
Package (C:\Users\workspace\basic\Debug\org.tizen.basic-1.0.0-i386.tpk) is created successfully.

Ubuntu和macOS:

代码语言:javascript
复制
$ tizen package -t tpk -s MyProfile -- ~/workspace/basic/Debug/org.tizen.basic-1.0.0-i386.tpk
Author certificate: ~/tizen-sdk-data/keystore/author/mycert.p12
Distributor1 certificate : ~/tizen-sdk/tools/certificate-generator/certificates/distributor/tizen-distributor-signer.p12
Package (~/workspace/basic/Debug/org.tizen.basic-1.0.0-i386.tpk) is created successfully.

有关更多细节,请参阅下面的tizen指南。

https://developer.tizen.org/development/tizen-studio/native-tools/cli

票数 1
EN

Stack Overflow用户

发布于 2018-04-03 19:00:49

示例值为十六进制,而XML包含base64。

例如,您的SHA-256值是64十六进制数字,所以32字节-这对于SHA-256来说是有意义的,也就是256位。

XML中的DigestValue是44个字符,包括一个填充字符--这正是我所期望的32个字节,其中每3个字节需要4个字符。

例如,下面是一些C#代码,用于获取base64哈希并将其转换为(破折号分隔的)十六进制:

代码语言:javascript
复制
using System;
using System.Text;

class Test
{
    static void Main()
    {
        byte[] hash = Convert.FromBase64String("wgvWtVSJns8mCgUPfBZ/2ZTBfKqR02zW0MD4tA3cIBE=");
        Console.WriteLine(BitConverter.ToString(hash));        
    }
}

产出如下:

代码语言:javascript
复制
C2-0B-D6-B5-54-89-9E-CF-26-0A-05-0F-7C-16-7F-D9-94-C1-7C-AA-91-D3-6C-D6-D0-C0-F8-B4-0D-DC-20-11

..。这与您为原始文件计算的散列相匹配,因此至少您知道您正在正确地计算它。

我对Tizen本身一无所知,但听起来您可能需要更新该XML文件以包含SHA-256哈希的base64 .或者如果您删除了它,工具是否会为您替换它?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49637116

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档