项目当中遇到了关于数据加密的问题,项目是移动端的项目,后台是PHP写的
找了一天,最后找到了,话不多说直接上干货
由于本人是写PHP的,肯定是用的框架啊,找了一下果然有,(我用的是CI,在新版的加密类里),
我想其他不管什么语言的框架大概也会有这种加密算法吧,毕竟这个算法这么出名。
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class DES extends CI_controller{
public function __construct(){
parent::__construct();
$this->load->library('encryption'); //引入加密类
}
public function decrypt()
{
// $key = bin2hex($this->encryption->create_key(16)); //用来生成密钥(每次都不一样)
$key = 'd1413bc6b256e88353b956a58b3dc2cf';
$this->encryption->initialize(
array(
'driver' => 'mcrypt', //切换到mcrypt
'cipher' => 'aes-128', //使用aes-128 算法
'mode' => 'cbc', //使用cbc模式
'key' => $key //密钥
)
);
/**
* 我发现同样的密钥同样的待加密信息,
* 加密出来的东西每次都不一样;
*/
$plain_text0 = '中华人名共和国万岁!';
$plain_text = '9056256b2bf5f3dca83b689c007d682d18fbbf04bf5c124eeb6c0949baf8112c7031e662236e5cb60b74fefa4647c4243e2bcb2e0e11418659f6e08d335ee34aLVlkgCrV+GdUgKxqBFx2PPqkfM8OsNshMJePiiK6tLzD+wT8sjmXbQOk3phJaP10';
$plain_text1 = '100f310fdcba5bf672bc776ea63c2c23dbf76fa01dcda3bda56df8b7a48794aa18579fdd2f196da6aab00adf3abfac0e22a1ec7eb0e640f4f49ee6f7909c9c5chGsK4DLxuRnhSRQfEfNEu4e5hKZo7tPzcdcBm1yiZ7/coJkW5uHIe2R5uaA+loG/';
echo $key;
echo '</br>';
echo $ciphertext = $this->encryption->encrypt($plain_text0); //加密
echo '</br>';
echo $this->encryption->decrypt($plain_text); //解密
echo '</br>';
echo $this->encryption->decrypt($plain_text1); //解密
}
}
Android 和 iOS的直接给个链接看吧
链接地址 http://blog.csdn.net/huangwenkui1990/article/details/48292865