扫码关注官方订阅号
密文是这样子的:V53::eJwzcDJAASYWRhaGLsYGLqamTpZGji4GJuYGlpbGbm4mhhbmxi6OAPBkCik=明文对应的是11位手机号码,这个是可以确定的;所以想问大家这是用了什么加密方式?
小伙看你根骨奇佳,潜力无限,来学PHP伐。
我可以肯定告诉你这是编码过的二进制数据(::之后)真的很难看出是什么进行加密的
你这肯定是无法解密的,从结果来看,应该是经过base64加密过的,但是经过几层加密,以及加密使用的盐都不知道,怎么解密。。。
基本上应该是解密不了。。。
SHA256加密?
应该是先加密,然后base64编码转换后的。。。不知道加密算法,很难解密
不知道加密算法,解密无忘。
很难吧,只可以看出最后是base64加密的,至于之前进行了怎样的加密,看不出来
密文一般都是二进制,为了方便存储和传输一般都base64_encode编码为字符串,解密前先base64_decode.其实就算你知道了加密算法,你也得知道密钥才能解密.下面就看看两种常见类型加密里的主流加密算法:
base64_encode
base64_decode
非对称加密中的RSA:
用openssl生成rsa密钥对(私钥/公钥): openssl genrsa -out rsa_private_key.pem 1024 openssl rsa -pubout -in rsa_private_key.pem -out rsa_public_key.pem 私钥 rsa_private_key.pem 放在服务器端. 公钥 rsa_public_key.pem 放在Android/iOS/浏览器等客户端. <?php header('Content-Type: text/plain;charset=utf-8'); $data = 'phpbest'; echo '原始内容: '.$data."\n"; openssl_public_encrypt($data, $encrypted, file_get_contents(dirname(__FILE__).'/rsa_public_key.pem')); echo '公钥加密: '.base64_encode($encrypted)."\n"; openssl_private_decrypt($encrypted, $decrypted, file_get_contents(dirname(__FILE__).'/rsa_private_key.pem')); echo '私钥解密: '.$decrypted."\n";
对称加密中的AES(比如可以用来加密用于认证用户身份等敏感cookies):
<?php header('Content-Type: text/plain;charset=utf-8'); $data = 'phpbest'; echo '原始内容: '.$data."\n"; //这是一个很长的密钥,即使超过加密算法(cipher)支持的最大长度 //比如AES密钥最大长度为32,BlowFish为56,输出mcrypt_enc_get_key_size($td)可见. //md5( uniqid(getmypid().'_'.mt_rand().'_', true) ); 自行生成并保存32位AES密钥 $key = '5951fe63c56c60e18a65064819e3101d'; $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $key = substr($key, 0, mcrypt_enc_get_key_size($td)); mcrypt_generic_init($td, $key, $iv); $encrypted = mcrypt_generic($td, $data); mcrypt_generic_deinit($td); mcrypt_module_close($td); echo '密钥加密: '.base64_encode($encrypted)."\n"; $td = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_ECB, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND); $key = substr($key, 0, mcrypt_enc_get_key_size($td)); mcrypt_generic_init($td, $key, $iv); $encrypted = base64_decode('nMD7Yrx37U5AZRpXukingESUNYiSUHWThekrmRA0oD0='); $decrypted = mdecrypt_generic($td, $encrypted); mcrypt_generic_deinit($td); mcrypt_module_close($td); echo '密钥解密: '.trim($decrypted)."\n";
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
我可以肯定告诉你这是编码过的二进制数据(::之后)
真的很难看出是什么进行加密的
你这肯定是无法解密的,从结果来看,应该是经过base64加密过的,但是经过几层加密,以及加密使用的盐都不知道,怎么解密。。。
基本上应该是解密不了。。。
SHA256加密?
应该是先加密,然后base64编码转换后的。。。不知道加密算法,很难解密
不知道加密算法,解密无忘。
很难吧,只可以看出最后是base64加密的,至于之前进行了怎样的加密,看不出来
密文一般都是二进制,为了方便存储和传输一般都
base64_encode编码为字符串,解密前先base64_decode.其实就算你知道了加密算法,你也得知道密钥才能解密.下面就看看两种常见类型加密里的主流加密算法:非对称加密中的RSA:
对称加密中的AES(比如可以用来加密用于认证用户身份等敏感cookies):