栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何以编程方式计算Chrome扩展程序ID?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何以编程方式计算Chrome扩展程序ID?

我只能找到有关Ruby片段的相关文章,并且仅在IA中可用:http
://web.archive.org/web/20120606044635/http:
//supercollider.dk/2010/01/calculating-
chrome扩展名来自您的私钥233


重要提示:

  1. 这取决于DER编码的公共密钥(原始二进制文件),而不取决于PEM编码的密钥(通过对DER密钥进行base64编码生成的漂亮ASCII)。
  2. 扩展ID为base-16,但使用[ap](称为“ mpdecimal”)而不是[0-9a-f]进行编码。

使用PEM编码的公钥,请执行以下步骤:

  1. 如果您的PEM格式的公钥仍然具有页眉和页脚并且被分成多行,请手动对其进行重新格式化,以使您拥有一个不包含页眉和页脚的单个字符串,并一起运行,以便密钥换行到下一个。
  2. base64解码公钥以呈现DER格式的公钥。
  3. 生成DER格式密钥的SHA256十六进制摘要。
  4. 取哈希的前32个字节。您将不需要其余的。
  5. 对于每个字符,将其转换为10为底,并为’a’添加ASCII码。

以下是执行此操作的Python例程:

import hashlibfrom base64 import b64depredef build_id(pub_key_pem):    pub_key_der = b64depre(pub_key_pem)    sha = hashlib.sha256(pub_key_der).hexdigest()    prefix = sha[:32]    reenpred = ""    ord_a = ord('a')    for old_char in prefix:        pre = int(old_char, 16)        new_char = chr(ord_a + pre)        reenpred += new_char    return reenpreddef main():    pub_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjvF5pjuK8gRaw/2LoRYi37QqRd48B/FeO9yFtT6ueY84z/u0NrJ/xbPFc9OCGBi8RKIblVvcbY0ySGqdmp0QsUr/oXN0b06GL4iB8rMhlO082HhMzrClV8OKRJ+eJNhNBl8viwmtJs3MN0x9ljA4HQLaAPBA9a14IUKLjP0pWuwIDAQAB'    id_ = build_id(pub_key)    print(id_)if __name__ == '__main__':    main()

非常欢迎您针对现有扩展名及其ID进行测试。要检索其PEM格式的公钥:

  1. 转到Chrome中现有扩展程序的列表。抓住扩展ID之一。
  2. 查找托管扩展的目录。在我的Windows 7框中,它是:C: Users <用户名> AppData Local Google Chrome User Data Default Extensions <扩展名>
  3. 从“ key”下的manifest.json文件中获取公共密钥。由于密钥已经准备好进行base64解码,因此可以跳过该过程的步骤(1)。

该示例中的公共密钥来自“ Chrome阅读器”扩展名。它的扩展名是“ lojpenhmoajbiciapkjkiekmobleogjc”。

也可以看看:

  1. Google Chrome-字母数字哈希标识扩展名
  2. http://blog.roomanna.com/12-14-2010/getting-an-extensions-id


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/647003.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号