HEX
Server: nginx/1.22.1
System: Linux VM-4-16-centos 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User: www (1001)
PHP: 7.1.33
Disabled: NONE
Upload Files
File: /www/wwwroot/wen.haoynn.cn/wp-content/themes/ripro/vendor/yurunsoft/pay-sdk/src/Lib/Encrypt/RSA.php
<?php
namespace Yurun\PaySDK\Lib\Encrypt;

class RSA extends Base
{
	public static function signPrivate($data, $key)
	{
		$key = static::parseKey($key);
		$key = "-----BEGIN RSA PRIVATE KEY-----\n{$key}\n-----END RSA PRIVATE KEY-----";
		openssl_sign($data, $sign, $key, OPENSSL_ALGO_SHA1);
		return $sign;
	}

	public static function signPrivateFromFile($data, $fileName)
	{
		$key = file_get_contents($fileName);
		$res = openssl_get_privatekey($key);
		if(!$res)
		{
			throw new \Exception('私钥文件格式错误');
		}
		openssl_sign($data, $sign, $res, OPENSSL_ALGO_SHA1);
		openssl_free_key($res);
		return $sign;
	}

	public static function verifyPublic($data, $key, $sign)
	{
		$key = static::parseKey($key);
		$key = "-----BEGIN PUBLIC KEY-----\n{$key}\n-----END PUBLIC KEY-----";
		return 1 === openssl_verify($data, $sign, $key, OPENSSL_ALGO_SHA1);
	}

	public static function verifyPublicFromFile($data, $fileName, $sign)
	{
		$key = file_get_contents($fileName);
		$res = openssl_get_publickey($key);
		if(!$res)
		{
			throw new \Exception('公钥文件格式错误');
		}
		$result = openssl_verify($data, $sign, $res, OPENSSL_ALGO_SHA1);
		openssl_free_key($res);
		return 1 === $result;
	}

	public static function encryptPublicFromFile($data, $fileName)
	{
		$res = openssl_get_publickey(\file_get_contents($fileName));
		if(!$res)
		{
			throw new \Exception('公钥文件格式错误');
		}
		openssl_public_encrypt($data, $result, $res, OPENSSL_PKCS1_OAEP_PADDING);
		openssl_free_key($res);
		return $result;
	}

}