我正在建立一个自动化的过程来产生扩展。是否存在直接计算扩展名ID并完全绕过与浏览器交互的代码示例?
(我在下面回答我自己的问题。)
我只能找到有关Ruby片段的相关文章,并且仅在IA中可用:http
://web.archive.org/web/20120606044635/http:
//supercollider.dk/2010/01/calculating-
chrome扩展名来自您的私钥233
重要提示:
使用PEM编码的公钥,请执行以下步骤:
以下是执行此操作的Python例程:
import hashlib
from base64 import b64decode
def build_id(pub_key_pem):
pub_key_der = b64decode(pub_key_pem)
sha = hashlib.sha256(pub_key_der).hexdigest()
prefix = sha[:32]
reencoded = ""
ord_a = ord('a')
for old_char in prefix:
code = int(old_char, 16)
new_char = chr(ord_a + code)
reencoded += new_char
return reencoded
def main():
pub_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCjvF5pjuK8gRaw/2LoRYi37QqRd48B/FeO9yFtT6ueY84z/u0NrJ/xbPFc9OCGBi8RKIblVvcbY0ySGqdmp0QsUr/oXN0b06GL4iB8rMhlO082HhMzrClV8OKRJ+eJNhNBl8viwmtJs3MN0x9ljA4HQLaAPBA9a14IUKLjP0pWuwIDAQAB'
id_ = build_id(pub_key)
print(id_)
if __name__ == '__main__':
main()
非常欢迎您针对现有扩展名及其ID进行测试。要检索其PEM格式的公钥:
该示例中的公共密钥来自“ Chrome阅读器”扩展名。它的扩展名是“ lojpenhmoajbiciapkjkiekmobleogjc”。
也可以看看: