php实现java的RSA加密

/*
     * RSA签名
     * */
    protected function rsaSign($data)
    {
        $str = $this->getSignContent($data);
        $encryptData = '';

        $privateKey = file_get_contents(ROOT_PATH.'/helpers/key/private_key.pem');
        $pi_key = openssl_pkey_get_private($privateKey);

        $priKeyRes = openssl_pkey_get_private($privateKey);

        openssl_sign($str, $encryptData, $priKeyRes, 'md5');
        openssl_free_key($priKeyRes);

        $encryptData = urlencode(base64_encode($encryptData));
        return $encryptData;
    }

 

JAVA代码

public static String sign(String text, String privateKey, String charset) throws Exception {

        byte[] keyBytes = Base64.decodeBase64(privateKey);
        PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(keyBytes);
        KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM);
        PrivateKey privateK = keyFactory.generatePrivate(pkcs8KeySpec);
        Signature signature = Signature.getInstance(SIGNATURE_ALGORITHM);
        signature.initSign(privateK);
        signature.update(getContentBytes(text, charset));
        byte[] result = signature.sign();
        return Base64.encodeBase64String(result);

    }

 

posted @ 2020-06-11 11:20  叶冬凌  阅读(468)  评论(0)    收藏  举报