doudu5029 2015-10-25 17:00
浏览 74
已采纳

PHP中的RSA加密

I am not an expert in Encryption and I've spent hours searching the Internet and stackoverflow.com for answers, however I am still stuck. My Problem is, that I have a Public Key Modulus and a Public Key Exponent, both given. With those, I need to encrypt a message.

Examples:

mod: CA498337FDD3D7C5487DBE5101899309B51B9B4708E647F85CC599A6C96ADFF62D7CD6A184DF346A3F707E7A34C5853ABA9030C65773AF604C59B8ED2E78D869F26B57E03CA9D0D45C67B8791AB010482224D108FCE20B515D8B1904B4DB41D0003950245E2382CA62477727E543850BC4FD4235041A44F213A99514EF5F64BE3D7F9DEE9E383062078D4E64ED92A42B94A0466B5BC36DAC55499DEA719A38C3A0C287724F57C64507AB424E9DBCC7F93112CF38D1B5458BFCD454F4907C5A617EBCD0F79DE40BBF8971D7CF225D9425010CF5CF638EF00B2582CDE7EA41DF7D65419B4129BBD37A872372D270B537B95C2DEE078107515B8CE719D5020CF337

exp: 010001

I still cant figure out how to achieve this in PHP. This is the code I have so far (I'm using phpseclib):

$message = "Hello World";

$rsa = new Crypt_RSA();
$rsa->loadKey(
array(
    'e' => new Math_BigInteger($pubkey_exp),
    'n' => new Math_BigInteger($pubkey_mod)
)
);

$rsa->setPublicKey();

$ciphertext = $rsa->encrypt($message);

However, I am not getting any output from this.

  • 写回答

1条回答 默认 最新

  • douche1936 2015-10-25 17:49
    关注
    $pubkey_n = 'CA498337FDD3D7C5487DBE5101899309B51B9B4708E647F85CC599A6C96ADFF62D7CD6A184DF346A3F707E7A34C5853ABA9030C65773AF604C59B8ED2E78D869F26B57E03CA9D0D45C67B8791AB010482224D108FCE20B515D8B1904B4DB41D0003950245E2382CA62477727E543850BC4FD4235041A44F213A99514EF5F64BE3D7F9DEE9E383062078D4E64ED92A42B94A0466B5BC36DAC55499DEA719A38C3A0C287724F57C64507AB424E9DBCC7F93112CF38D1B5458BFCD454F4907C5A617EBCD0F79DE40BBF8971D7CF225D9425010CF5CF638EF00B2582CDE7EA41DF7D65419B4129BBD37A872372D270B537B95C2DEE078107515B8CE719D5020CF337';
    $pubkey_e = '010001';
    $message = "Hello World";
    
    $rsa = new Crypt_RSA();
    $r = $rsa->loadkey(
        array(
          'e' => new Math_BigInteger($pubkey_e, 16),
          'n' => new Math_BigInteger($pubkey_n, 16)
        ),
        CRYPT_RSA_PUBLIC_FORMAT_RAW
    );
    //$rsa->setEncryptionMode(CRYPT_RSA_ENCRYPTION_PKCS1);
    var_export( $ciphertext = $rsa->encrypt($message) );
    

    seems to be working.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路
  • ¥15 MATLAB报错输入参数太多
  • ¥15 python中合并修改日期相同的CSV文件并按照修改日期的名字命名文件
  • ¥15 有赏,i卡绘世画不出
  • ¥15 如何用stata画出文献中常见的安慰剂检验图
  • ¥15 c语言链表结构体数据插入
  • ¥40 使用MATLAB解答线性代数问题
  • ¥15 COCOS的问题COCOS的问题
  • ¥15 FPGA-SRIO初始化失败