首页 > 编程语言 >php rsa加密(非对称)实例 以及使用哈希256进行加密

php rsa加密(非对称)实例 以及使用哈希256进行加密

时间:2024-01-10 11:22:06浏览次数:23  
标签:公钥 加密 string openssl rsa 哈希 data public

function getEncryptionUserID($client_secret): string
{

    $str = "
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpw/k/rPHx4c1nEO8lQr8Fkz2MMTnqNbspRox1f2snoDNcssTQxg9TyBOMujQy14eRibKE+X+qPVeZJyyfruTrtvB4EomJL7v4URcacg7H00A2HL1nf7DTtp8oRpVIssATcrgjwg60DSyDamMlnXCv9TiUKb+jRqWBkZNGhPh9UwIDAQAB
-----END PUBLIC KEY-----
";

    $a = openssl_pkey_get_public($str);

    //对数据公钥加密及私钥解密
    $string = $client_secret;

    $r= openssl_public_encrypt($string, $encrypted, $a);
    if ($r) {
        $b = base64_encode($encrypted);
    }

    return $b;
}

openssl_pkey_get_public()函数将返回您的公钥。

函数openssl_pkey_get_public()从给定证书中返回公钥,以便可以与其他函数一起使用。

 

openssl_public_encrypt(
    string $data,
    string &$encrypted_data,
    OpenSSLAsymmetricKey|OpenSSLCertificate|array|string $public_key,
    int $padding = OPENSSL_PKCS1_PADDING
): bool

openssl_public_encrypt() 使用公钥 public_key 解密数据 data 并且将结果保存到变量 encrypted_data 中。加密的数据可以通过 openssl_private_decrypt() 函数解密。

该函数可以用来加密数据,供该公钥匹配的私钥拥有者读取。 它也可以用来在数据库中存储安全数据。

 

哈希算法实例:

$hash_it = hash("sha256", $client_id . $data. $pubKey, false);   hash(
    string $algo,
    string $data,
    bool $binary = false,
    array $options = []
): string

参数 ¶

algo

要使用的散列算法,例如:“md5”、“sha256”、“haval160,4”等。在 hash_algos() 中查看支持的算法。

data

要进行散列运算的消息。

binary

设置为 true 输出原始二进制数据, 设置为 false 输出小写 16 进制字符串。

options

各种散列算法的一系列选项数组。目前 MurmurHash 算法仅支持 “seed” 参数。

 
 

标签:公钥,加密,string,openssl,rsa,哈希,data,public
From: https://www.cnblogs.com/xiaoyantongxue/p/17956128

相关文章

  • 探讨JS混淆技术及其加密解密实例
    引言在当前计算机科学领域中,保护软件代码的安全性和隐私性变得愈发重要。为了防止黑客攻1击和恶意软件分析,开发人员采用各种技术来混淆和加密其代码,其中包括JS混淆技术。本文将介绍JS混淆技术的原理和应用,并提供一些相关的加密解密实例。一、JS混淆技术简介JS混淆技术是一种通过......
  • JS加密/解密之常见的JS代码加密
    JS混淆加密是一种将JS代码转换为更难理解和阅读的格式的技术,目的是为了保护JS代码的版权和安全,防止被恶意修改或盗用。JS混淆加密通常包括以下几种方法:变量重命名:将变量名替换为随机的字母或符号,使得代码的逻辑难以跟踪。字符串加密:将字符串转换为十六进制或Unicode编码,或者使用自......
  • N32G如何加密烧录
    国民技术的MCUN32G030的Flash具有加密功能,并且有L0、L1、L2三种读保护功能,能有效的保护Flash中的程序不会被盗用。当N32G030的Flash配置为L1保护,需要通过国民技术提供的JLinkNsUnlockTool软件进行解除保护才能重新烧写程序。为了加密烧录N32G,您可以按照以下步骤操作:准备所需的文件......
  • 字母异位词分组【哈希】
    Problem:49.字母异位词分组文章目录思路解题方法复杂度Code思路hash解题方法对于每一个字符串,都按字符从小打到进行排序,然后用hash去存,如果排序后的结果在hash表里面存在的话,那么就只需要把这个字符串加入进行;如果不存在,就新建一个键值对就可以了。关键就是字符串没有排序,所以......
  • 两数之和【哈希】
    Problem:1.两数之和文章目录思路解题方法复杂度Code思路n方可以暴力,也可以用hash去降低时间复杂度。解题方法遍历列表,每个数都看一下是否它的补是否再hash表里面,在就说明找到了,不在就把它放进去,然后继续遍历。复杂度时间复杂度:添加时间复杂度,示例:空间复杂度:添加空间复杂度......
  • 简单的js加密练习(js逆向)
    Spiderbuf-Python爬虫练习场直接开发者工具检查,然后查找加载这个的文件位置。没有载荷但是有个加密的链接,这是我们得想一下,这个加密绝对是可解的加密,不然服务器怎们知道是什么请求呢,所以我们先使用解密工具验证。直接找到,看来是base64加密,但是后谜案还有一串字符,我们可以猜测一下这......
  • 字符串和哈希表的基本用法总结
    2287.重排字符形成目标字符串解决代码classSolution{publicintrearrangeCharacters(Strings,Stringtarget){Map<Character,Integer>sCounts=newHashMap<Character,Integer>();Map<Character,Integer>targetCounts=newHashMap&......
  • 猿人学第一题 js混淆 双重加密(详解)
    当我们点击分页的时候可以确定这个请求过程是ajax请求,所以直接使用抓包工具找到储存信息的请求。找到这个请求之后,我们明显发现?后面的参数m是一个加密过的由于这个请求属于ajax请求,现在我们可以直接使用xhr断点调试找到位置打上断电之后直接分页请求。进入调试直接在右边堆栈中开......
  • GaussDB(for MySQL)新特性TDE发布:支持透明数据加密
    本文分享自华为云社区《GaussDB(forMySQL)新特性TDE发布:支持透明数据加密》,作者:GaussDB数据库。技术背景为了保护数据的安全,我们可能通过防火墙、身份认证、安全权限控制、网络及端口访问控制、传输加密等多种方式对程序运行过程中的各个环节进行安全防控,但这些并不能保证数据静......
  • JS加密/解密之常见的JS代码加密
    在软件开发领域,混淆(JS)是一种常见的技术,通过改变代码结构、命名和逻辑,增加代码的复杂性,使其对于逆向工程者变得更加困难。然而,有时候开发者可能需要解开混淆,以便理解、维护或修改代码。在本文中,我们将简要讨论一些可能用于obfuscated代码解密的基本逻辑。JS解密的基本思路JS代码......