繁体   English   中英

密钥格式需要在Crypt RSA中使用

[英]Key format need to use in Crypt RSA

我使用此Java函数创建密钥对。

      KeyPairGenerator keyGen = KeyPairGenerator.getInstance(keyAlgorithm);
        keyGen.initialize(numBits);
        KeyPair keyPair = keyGen.genKeyPair();
        PrivateKey privateKey = keyPair.getPrivate();
        PublicKey  publicKey  = keyPair.getPublic();

        // Get the bytes of the public and private keys
        byte[] privateKeyBytes = privateKey.getEncoded();
        byte[] publicKeyBytes  = publicKey.getEncoded();

我将其作为公共密钥(类似于此。无法在此处粘贴):

0��0
    *�H��

我想知道这是哪种格式键? pem / der?

我想在我的rsa php代码中使用此密钥。 我是否需要转换为任何特定格式?

$keyData =file_get_contents($configValues['metPubKey']); //'metPubKey 'variable contain file path

    $rsa = new Crypt_RSA();

        try{
            $rsa->loadKey($keyData); // public key
            // $rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_XML);
            //$rsa->setHash('md5');
            $encryptedToken = base64_encode($rsa->encrypt($token));
            print_r("after : \"".$encryptedToken."\"");
        }catch(Exception $e){
            // print_r($e);
            die;
        }

它不会引发任何异常。 但是出于好奇,在运行具有相同数据的相同代码时,每次都会创建不同的令牌。 我只想确认一下。

PHP中是否还有其他方法可以使用RSA公钥加密数据?

不幸的是,在处理二进制原始数据时,Java非常笨拙……但是,由于领先的PKCS填充会连接一些随机的东西,以防止重放攻击和/或对加密的数据进行统计分析,因此每次获得不同的令牌数据

仅供参考,您想加密对称密钥并使用此类密钥对大型二进制数据进行编码/解码。 不要直接使用RSA对最终数据进行编码/解码!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM