用PHP加密消息,用JavaScript解密
Encrypt message in PHP, decrypt in JavaScript
我想通过php加密消息,但在客户端,我希望javascript解密它。我曾尝试过Blowfish(使用mcrypt),但我发现php回显非字母数字字符,而Javascript显示字母数字。我正在使用ajax,这样页面就不会重新加载。
我已经测试了http://aam.ugpl.de/?q=node/1060和http://www.php-einfach.de/blowfish_en.php#ausgabe的代码。
任何帮助都是感激的。
编辑:我使用Diffie-Hellman来计算随机生成的数字a和b的密钥。下面是php代码
的结果class Encryption
{
const CYPHER = 'blowfish';
const MODE = 'cbc';
const KEY = '26854571066639171754759502724211797107457520821';
public function encrypt($plaintext)
{
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
mcrypt_generic_init($td, self::KEY, $iv);
$crypttext = mcrypt_generic($td, $plaintext);
mcrypt_generic_deinit($td);
return $iv.$crypttext;
}
public function decrypt($crypttext)
{
$plaintext = '';
$td = mcrypt_module_open(self::CYPHER, '', self::MODE, '');
$ivsize = mcrypt_enc_get_iv_size($td);
$iv = substr($crypttext, 0, $ivsize);
$crypttext = substr($crypttext, $ivsize);
if ($iv)
{
mcrypt_generic_init($td, self::KEY, $iv);
$plaintext = mdecrypt_generic($td, $crypttext);
}
return $plaintext;
}
}
$encrypted_string = Encryption::encrypt('this is a test');
$decrypted_string = Encryption::decrypt($encrypted_string);
echo "encrypted: $encrypted_string<br>";
echo "decrypted: $decrypted_string<br>";
encrypted: µ˜?r_¿ÖŸŒúw‰1‹Žn!úaH
decrypted: this is a test
这个来自几个斯坦福学生的javascript AES加密库是我见过的最好的:
http://crypto.stanford.edu/sjcl/但请注意他们的警告:
<标题>更新:我们相信SJCL提供了Javascript中实际可用的最佳安全性。(不幸的是,这并不像桌面应用程序那样好,因为不可能完全防止代码注入,恶意服务器和侧信道攻击。)
在PHP中,加密后使用base64_encode()
,解密前使用base64_decode()
。这样,它将被渲染为安全的字符传输。浏览器中使用atob()
和btoa()
相关文章:
- 如何解密此javascript代码
- 如何从文本区域获取数据并使用javascript进行解密
- 使用 SJCL 在 Javascript 中加密,在 PHP 中解密
- 用Python编码,用Javascript解密
- 用JavaScript加密字符串,用RSA技术用PHP解密
- 与PHP解密相匹配的Javascript加密
- javascript中的AES加密和java中的解密
- 用PHP mcrypt加密的Javascript解密Blowfish CBC
- javascript->php加密解密-需要澄清和方法请
- Javascript 解密长消息 RSA
- Java加密和Javascript解密
- 如何使用已知的KEY和IV使用Javascript解密AES
- 用PHP加密消息,用JavaScript解密
- 是否可以用Php加密JWT令牌并用Javascript解密
- NodeJS加密到前端javascript解密
- 可以“javascript”解密数据,由PHP加密
- JavaScript解密功能
- 如何使用JavaScript解密AesCryptoServiceProvider
- c# xor加密到javascript解密
- 下载过程中的Javascript解密