perl6创建可执行文件?

时间:2019-01-06 20:35:50

标签: executable perl6

我正在使用Moar。现在可以创建perl6可执行文件了吗?

我在machineA上开发了源代码,我想在machineB上运行它,它的速度比machineA快3倍,但是我不希望machineB上的人能够查看源代码。

还是我必须更改为Java VM?

如果无法创建perl6可执行文件,那么保护公司/部门知识产权的最佳方法是什么?

非常感谢您!

lisprog

1 个答案:

答案 0 :(得分:4)

对于简单的东西,如果您是亲自在machineB上运行它,则可以尝试将程序中的源或STDOUT解密,然后将其提供给perl6。加密和解密有很多选项,例如一次性填充gpg,甚至可以通过machineA上的套接字安全地读取内容。这是使用zip和unzip的概念证明示例,

cat my.p6
for 1 .. 5 { say rand }
zip -e my.zip my.p6
Enter password:
Verify password:
adding: my.p6 (stored 0%)
unzip -p my.zip | perl6
[my.zip] my.p6 password:
0.6868457931159548
0.3818693072902063
0.26339483730150215
0.03617574596367301
0.1992317319783774

关于在外壳层使用一次性填充进行加密,将使用script(需要openssl和ssh),

./sshencdec.sh -p ~/.ssh/id_rsa.pub < my.p6 > my.p6.enc
./sshencdec.sh -s ~/.ssh/id_rsa  < my.p6.enc | perl6
Enter pass phrase for /home/david/.ssh/id_rsa:
0.4554567534399926
0.5215978159072545
0.5188661477620019
0.4928945548121154
0.2916414959794953
cat my.p6.enc
-- encrypted with https://git.e.tern.al/s2/sshencdec
-- keys
-- key
M32P8T5hAbkozzu9Hsb0UxaHMIowBnm5SGya1JdVRKM85NrsmMaO+JVICdpNCACu
0onf3xIDIdl6IRiLRmbrrG2qOHqYSqHXLLs4Yt7530IvGiDyxpGeygJwt35+PZ4T
KH6FMluenkvkHufsY1xRC2PM8kzQ0xtx9ThVNkupQavVN3SOHaMxVFZUqJCuInFl
Y8e6iMyoF7NfQ4ekUwOtpJtFjB5DzMepxg+iAetTV2E2kwAq5qUTrmkzSTd38b+X
YzdeYmngMjBPzMZ/nrBT4cE2kAYyIGUwTDMa5UsClUUBBAN6Igfxn5O6ozlq9FXk
IIujhfgAn64U2DfcYHCZ2w==
-- /key
-- /keys
U2FsdGVkX18ObEPup0W1+45UewyKoUftMzn+dUDRQp9mDCzJ0/7cVYTe6zNJINIU

所以在后台,流程是这样的,

  • 使用强密码(使用AES 256的脚本)使用PAD将SECRET加密为SECRET.enc
  • 使用非对称加密保护PAD以生成PAD.enc(在这种情况下为SSH + RSA)
  • 现在您将需要SECRET.enc,PAD.enc和私钥密码短语来执行必要的解密(该脚本可以方便地将前两个合并为一个文件)

这在您需要共享文件(只要可以确定安全密钥交换部分的情况下使用其他公共密钥)时很有用

在程序操作中,AFAIK在生态系统中还没有类似于this的模块,但是您可以从here中吸取灵感来构建自己的帮助程序类/模块。 / p>