在新的PHP 7.2钠函数中使用Halite键

时间:2018-12-14 21:46:38

标签: php encryption libsodium

我们有大量数据是使用Halite在PHP 7.1安装中加密的,并且服务器最近更新为7.2,而libsodium现在已成为PHP的一部分。我们有包含200个字符的密钥文件(公共和秘密文件)(下面显示一个旧的测试公共密钥进行演示):

const navigateAction = StackActions.navigate({ index: 1, routes: [ ({ routeName: 'ScreenB' }), ({ routeName: 'ScreenC' }), ], }); this.props.navigation.dispatch(navigateAction);

它们是使用以下代码生成的:

31400100d6c01eb5744a3b508b389a2b10e4b554f8f004f8a0afc78beb02f574bbf2d8017563a641bd508e6a3c132e3350bf1bd1bdf402115b2a628dd63cf5cf5dae1fedbe6e4bc2b5e58c372c3bd960fada57741ef204a9a19a767f126af653a60d5be0

我们曾经像这样进行加密/解密(当然永远不会在同一服务器上):

$encryptionKey = KeyFactory::generateEncryptionKey();
KeyFactory::save($encryptionKey, $keyPath . $keyPublic);

既然我们使用的是PHP 7.2,如何使用libsodium / halite先前版本中生成的这些密钥来解密现有数据?尝试在PHP7.2的新$webPublicKey = KeyFactory::loadEncryptionPublicKey($keyPath . $keyPublic); $encrypted = Asymmetric::seal($string,$webPublicKey); $webSecretKey = KeyFactory::loadEncryptionSecretKey($keyPath . $keySecret); $decrypted = Asymmetric::unseal($encrypted,$webSecretKey); 函数中使用旧密钥会不断导致密钥长度错误。

感谢您提供的任何指导。

谢谢!

0 个答案:

没有答案