PHP의 openssl_sign 메서드를 SHA512 (또는 다른 SHA2 제품군 구성원)와 함께 사용할 수 있습니까?PHP openssl_sign with SHA512
나는 키 유형 (OPENSSL_KEYTYPE_RSA)으로 RSA를 사용하고
openssl_sign($data, $signature, $privatekey, 'sha512');
모든 것이 잘 작동을 통해 서명합니다.
그러나 OPENSSL_KEYTYPE_DSA를 사용할 때 서명은 비어 있습니다. 나는이 발견되는 OpenSSL help page에서
". 그런 다음 DSA 알고리즘을 사용하여 데이터를 서명하거나 확인하고자하는 경우 사용되어야한다 소화 DSS1" 는
그래서 나는 DSA와 함께이 시도 :openssl_sign($data, $signature, $privatekey, 'dss1');
그리고 제대로 작동했습니다.
DSA를 사용하는 편이 좋기 때문에 사용 사례에 더 적합한 짧은 서명이 만들어집니다. 그러나 내 관심사는 DSS1이 기본적으로 더 이상 사용되지 않아야하는 SHA1이라는 것입니다. 이것은 DSA와의 조합에도 유효합니까? 이 문제를 해결하고 DSA를 SHA512와 함께 사용하는 방법이 있습니까?
어둠 속에서도 찌르지 만 SHA160을 사용할 수 있습니까? SHA1의 해시 길이와 일치하므로 호환성이 있지만 훨씬 안전합니다. – otus
내 지식에는 SHA160과 같은 것이 없습니다. SHA-0 및 SHA-1은 160 비트 키를 사용합니다. – CodeX
표준이 아니지만 일부 라이브러리는 SHA224와 같이 160 비트로 잘린 SHA256을 제공하지만 더 짧습니다. DSA로 전달할 방법이 있다면 잘라내기를 할 수 있습니다. – otus