gpt4 book ai didi

php - 使用 PHP 创建 Google Chrome Crx 文件

转载 作者:可可西里 更新时间:2023-11-01 13:56:57 25 4
gpt4 key购买 nike

我希望能够用 PHP 生成一个 crx 文件。

crx 文件是一个带有附加 header 的 zip 文件,我不知道如何创建这个 header 。如果我使用预生成的 pem 文件,我可以创建一个 crx 文件,但这会导致所有 crx 文件具有相同的扩展名,这并不好。这是我到目前为止所获得内容的链接......
http://valorsolo.com/index.php?page=Viewing%20Message&id=1472&pagenum=2#1500

Incase it helps this has been done in Python and there is an excellent blog post on the finer details here....
http://blog.roomanna.com/12-12-2010/packaging-chrome-extensions
以及关于该主题的其他代码的一些链接......
http://code.google.com/chrome/extensions/crx.html
http://code.google.com/p/crx-packaging/source/browse/trunk/packer.py
https://github.com/bellbind/crxmake-python/blob/master/crxmake.py
http://www.curetheitch.com/projects/buildcrx/

最佳答案

ruby code很有帮助。

您的公钥必须是 DER 格式,不幸的是,据我所知,PHP 的 OpenSSL 扩展不能这样做。我必须在命令行从我的私钥生成它:

openssl rsa -pubout -outform DER < extension_private_key.pem > extension_public_key.pub

更新:有一个 PHP der2pem() 函数 available here , 感谢 tutuDajuju 指出。

一旦完成,构建 .crx 文件就非常容易了:

# make a SHA1 signature using our private key
$pk = openssl_pkey_get_private(file_get_contents('extension_private_key.pem'));
openssl_sign(file_get_contents('extension.zip'), $signature, $pk, 'sha1');
openssl_free_key($pk);

# decode the public key
$key = base64_decode(file_get_contents('extension_public_key.pub'));

# .crx package format:
#
# magic number char(4)
# crx format ver byte(4)
# pub key lenth byte(4)
# signature length byte(4)
# public key string
# signature string
# package contents, zipped string
#
# see http://code.google.com/chrome/extensions/crx.html
#
$fh = fopen('extension.crx', 'wb');
fwrite($fh, 'Cr24'); // extension file magic number
fwrite($fh, pack('V', 2)); // crx format version
fwrite($fh, pack('V', strlen($key))); // public key length
fwrite($fh, pack('V', strlen($signature))); // signature length
fwrite($fh, $key); // public key
fwrite($fh, $signature); // signature
fwrite($fh, file_get_contents('extension.zip')); // package contents, zipped
fclose($fh);

关于php - 使用 PHP 创建 Google Chrome Crx 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5013263/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com