长沙seo排名公司,百度网站的优化方案,高端网站建设的品牌,近期热点新闻在一些项目中要求在php中生成加密#xff0c;然后在asp.net中接受过来的密码再解密#xff0c;下面和大家分享一个PHP与asp.net C#可共用的可逆加密算法#xff0c;感兴趣的可以参考参考。php加密算法#xff1a;class DES{var $key;var $iv; //偏移量function DES($key 1…在一些项目中要求在php中生成加密然后在asp.net中接受过来的密码再解密下面和大家分享一个PHP与asp.net C#可共用的可逆加密算法感兴趣的可以参考参考。php加密算法class DES{var $key;var $iv; //偏移量function DES($key 11001100, $iv0 ) {//key长度8例如:1234abcd$this-key $key;if( $iv 0 ) {$this-iv $key; //默认以$key 作为 iv} else {$this-iv $iv; //mcrypt_create_iv ( mcrypt_get_block_size (MCRYPT_DES, MCRYPT_MODE_CBC), MCRYPT_DEV_RANDOM );}}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 );}}?asp.net程序代码using System;using System.Collections.Generic;using System.IO;using System.Linq;using System.Security.Cryptography;using System.Text;namespace WindowsFormsApplication1{/// /// DES加密解密字符串/// public class DesEncryption{/// /// DES加密字符串/// /// 待加密的字符串/// 加密密钥,要求为8位/// 加密成功返回加密后的字符串失败返回nullpublic static string EncryptDES(string encryptString, string encryptKey 11001100){try{byte[] rgbKey ASCIIEncoding.ASCII.GetBytes(encryptKey.Substring(0, 8));byte[] rgbIV rgbKey;byte[] inputByteArray Encoding.UTF8.GetBytes(encryptString);DESCryptoServiceProvider dCSP new DESCryptoServiceProvider();MemoryStream mStream new MemoryStream();CryptoStream cStream new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);cStream.Write(inputByteArray, 0, inputByteArray.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 null;}}/// /// DES解密字符串/// /// 待解密的字符串/// 解密密钥,要求为8位,和加密密钥相同/// 解密成功返回解密后的字符串失败返回nullpublic static string DecryptDES(string decryptString, string decryptKey 11001100){try{byte[] rgbKey ASCIIEncoding.ASCII.GetBytes(decryptKey);byte[] rgbIV rgbKey;byte[] inputByteArray new byte[decryptString.Length / 2];for (int x 0; x decryptString.Length / 2; x){int i (Convert.ToInt32(decryptString.Substring(x * 2, 2), 16));inputByteArray[x] (byte)i;}DESCryptoServiceProvider DCSP new DESCryptoServiceProvider();MemoryStream mStream new MemoryStream();CryptoStream cStream new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);cStream.Write(inputByteArray, 0, inputByteArray.Length);cStream.FlushFinalBlock();return Encoding.UTF8.GetString(mStream.ToArray());}catch{return null;}}}}以上就是PHP和C#可共用的可逆加密算法希望对大家的学习有所帮助。