我尝试在同一个存储库中多次运行jsonify
,并且每次都返回不同的加密字符串。 Travis是否使用概率加密?如果没有,我做错了什么?
编辑:如果有IV,我的本地travis encrypt "some secret string"
cli和Travis服务器如何同意这个IV?我可以查看或更改它吗?
答案 0 :(得分:1)
请参阅Probabilistic Encryption WRT分组密码。
不同结果的示例在基于块的加密算法(例如具有随机IV的AES和CBC模式)中加密相同数据。 IV可以加密加密数据,加密数据也不同,因为每次加密相同的数据时都会有不同的IV,这是一种常见且良好的标准做法,IV不需要保密。
如果IV可以加在加密数据上,则可用于解密,不需要事先达成协议。
这是CBC mode,注意IV与第一个数据块进行xor'ed,并且每个后续块与先前的加密块进行xored。因此,IV会影响加密数据的每个块。
这样做是为了使两个相同的消息不具有相同的加密数据。考虑这样一种情况,即持续发送两条消息之一:“0”或“1”,其中0表示卖出,1表示买入。如果每次加密都相同,即使无法确定消息本身,也可以确定两个状态,以及它是哪个状态。
Travis-ci使用aes-256-cbc为Automated Encryption。
还有其他加密选项,例如RSA之类的非对称加密,可以使用随机填充。