php descryptoserviceprovider,在unity3D上对数据进行DES加密,在PHP服务器上进行解密的详细教程...
前言:
DES是一種加密方法,向服務器發送數據時,希望對數據進行簡單的加密,并且在服務器上自行解密的教程。
步驟:
unity3D(C#)
?//對數據進行DES加密
public static String Encrypt(String str)
{
string Key = "98344334";//自行設置,隨便8個數字(字母應該也行),作為加密解密的
密匙
byte[] bStr = Encoding.UTF8.GetBytes(str);
try
{
DESCryptoServiceProvider desc = new
DESCryptoServiceProvider();
desc.Key = ASCIIEncoding.ASCII.GetBytes(Key);
desc.IV = ASCIIEncoding.ASCII.GetBytes(Key);
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream,
desc.CreateEncryptor(), CryptoStreamMode.Write);
cStream.Write(bStr, 0, bStr.Length);
cStream.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in mStream.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
ret.ToString();
return ret.ToString();
}
catch
{
return string.Empty;
}
}
以上函數,傳進來一個要加密的數據,return出加過密的數據,要加的頭文件大家自行添加。。。
服務器端(PHP)?
class DES
{
var $key =
'98344334'; ?//和上面的KEY要相同
var $iv =
'98344334'; //和上面的KEY相同
function encrypt($str) {
//加密,返回大寫十六進制字符串
$size = mcrypt_get_block_size ( MCRYPT_DES,
MCRYPT_MODE_CBC );
$str = $this->pkcs5Pad ( $str,
$size );
return strtoupper( bin2hex(
mcrypt_cbc(MCRYPT_DES, $this->key, $str,
MCRYPT_ENCRYPT, $this->iv ) ) );
}
function decrypt($str) {
//解密
$strBin = $this->hex2bin(
strtolower( $str ) );
$str = mcrypt_cbc( MCRYPT_DES,
$this->key, $strBin, MCRYPT_DECRYPT,
$this->iv );
$str = $this->pkcs5Unpad( $str );
return $str;
}
function hex2bin($hexData)
{
$binData = "";
for($i = 0; $i < strlen (
$hexData ); $i += 2) {
$binData
.= chr ( hexdec ( substr ( $hexData, $i, 2 ) ) );
}
return $binData;
}
function pkcs5Pad($text,
$blocksize) {
$pad = $blocksize - (strlen ( $text ) %
$blocksize);
return $text . str_repeat ( chr ( $pad ), $pad
);
}
function pkcs5Unpad($text)
{
$pad = ord ( $text {strlen ( $text ) - 1} );
if ($pad > strlen ( $text ))
return
false;
if (strspn ( $text, chr ( $pad ), strlen ( $text
) - $pad ) != $pad)
return
false;
return substr ( $text, 0, - 1 * $pad );
}
}
在PHP里加入上面的類?,
$des = new DES();?//創建一個變量
?$password =
$des->decrypt($password);//調用函數即可獲得解密后的數據。
以上的代碼直接可復制使用,只需修改key的值。?
?
總結
以上是生活随笔為你收集整理的php descryptoserviceprovider,在unity3D上对数据进行DES加密,在PHP服务器上进行解密的详细教程...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单表单提交php教程,PHP 表单数据
- 下一篇: 动态规划算法php,php算法学习之动态