我有一个系统,其中多个组件必须使用其私钥对字符串进行签名。我是否需要为每个组件生成一个签名,如下所示:
$data = 'my data';
openssl_sign($data, $signature_component1, $private_key_component1, OPENSSL_ALGO_SHA256);
openssl_sign($data, $signature_component2, $private_key_component2, OPENSSL_ALGO_SHA256);
$r_component1 = openssl_verify($data, $signature_component1, $public_key_component1, "sha256WithRSAEncryption");
$r_component2 = openssl_verify($data, $signature_component2, $public_key_component2, "sha256WithRSAEncryption");
if($r_component1 && $r_component2){
// Verification successful
}
// Verification failed
在所有组件中传递所有传入的签名和将新的签名传递到下一个组件相当麻烦。有没有更方便的方法可以多次对数据进行签名,从而将检查每个组件中的签名的开销保持在最低水平