BlackBerry WebWorks SDK for Tablet OS构建工具生成包含文件和MANIFEST.MF的存档,其中包含每个文件的条目以及base64编码的SHA512摘要。但是,存在一个错误,即构建中的文件太多会导致构建失败。我想弄清楚如何自己生成同样的信息。为文件(或文件集)生成base64编码的SHA512摘要
下面的例子来自MANIFEST.MF
,它包含文件名和摘要。但是,base64变体使用_
而不是/
和-
而不是+
,并且没有用于填充的尾随==
。
Archive-Asset-Name: air/XX/IMG_0999.jpg
Archive-Asset-SHA-512-Digest: YI_KXWjpJwwsi5MDQPeBQc9SVi-bH6zYq5PgBD3jQiqHu-r-5Hv8A0yh_y5j2T9MpYZ5TVMW4JXHSXNYmpV1tA
我运行的是Windows 7,但安装了GIT,因此我将MINGW32作为bash shell。我发现这个openssl和tr命令的组合管道,但它似乎有点混乱。
openssl dgst -sha512 -binary IMG_0999.gif | openssl enc -base64 | tr '+' '-' | tr '/' '_' | tr -d '=' | tr -d '\n'
有没有更好的方法来生成这个摘要?最终,我将不得不为目录树中的所有图像执行操作。我希望得到一个脚本解决方案,而不必编写一个程序。第二个问题是如何为目录中的所有文件生成清单语法(递归)。这是一个包含上述命令的bash shell脚本吗?任何指针在这里都会被赞赏,因为我之前没有写过shell脚本。