Yii2 RSA使用模量和指数加密

时间:2019-06-26 09:19:10

标签: php yii2 rsa yii2-advanced-app

我有一个肥皂网络服务,该服务需要使用RSA算法进行密码加密。但是,我已被告知如何执行此操作的步骤,但是我不确定该怎么做。

步骤

  1. 执行密码的SHA-256哈希
  2. 将SHA-256表示形式的BigInteger转换为以16为底的字符串
  3. 使用具有以下参数的公共密钥对密钥进行加密

    指数113621440243785421499955306133900099987164309503876199371900 61108597569919490562171044287644188919530245192244355535426664573745这不是一个真正的价值而只是一个指南)

    模量9965644084057417656330538552189694824948559788786878830575584 44367368137357168893841560814041088567854117014580575728077016098213(这不是真实值,只是一个指南)

  4. 执行密码的base64编码

我所做的是阅读RSA算法并在线遇到了一些工作示例,但是当我实现这些示例时,我不断收到相同的错误消息,即“无法解密密码”

$client = Yii::$app->soapApi; //the soapApi component was declared inside the main.php file

  $password = 'abc12345';

  $password = hash("sha256", $password);

  $r = gmp_init($password, 16);
  $result =  gmp_strval($r); 

  $exponent= 'value was specified here';

  $modulus= 'value was specified here';

  $crypt_rsa = new \Crypt_RSA();
  $crypt_rsa->loadKey(
     array(
         'e' => new \Math_BigInteger($exponent),
         'n' => new \Math_BigInteger($modulus)
     )
  );

  $encryptedPassword = base64_encode($crypt_rsa->encrypt($result));

  $parameters = [
    'username' =>'username',
    'password' => $encryptedPassword,
    'orgid' => 'value'
  ];

  var_dump($client->createTokenString($parameters));die;

我希望结果返回带有生成令牌的元素,但是我无法解密密码

0 个答案:

没有答案