class DES { var $key; var $iv; //offset function DES($ key = '11001100', $iv=0 ) { //キーの長さ 8 例: 1234abcd $this->key = $key; if( $iv == 0 ) { $this->iv = $ key; //デフォルトでは $key を iv として使用します。 function encrypt($str ) {加 // 暗号化、大文字に戻す、16 進文字列 $ size = mcrypt_get_block_size (mcrypt_des, cbc); mcrypt_cbc(MCRYPT_DES, $this->key, $str, MCRYPT_ENCRYPT, $this->iv ) ) ); } function decrypt($str) { //復号化 $strBin = $this-> hex2bin( strto lower( $str ) ); $str = mcrypt_cbc( MCRYPT_DES, $this->key, $strBin, MCRYPT_DECRYPT, $this->iv ); $str = $this->pkcs5Unpad( $str ); return $str; $binData .= chr ( hexdec ( substr ( $hexData, $i, 2) )); Return $ Text . Str_repeat (chr ($pad), $pad); XT {strlen ( $text ) - 1} ); if ($pad > strlen ( $text )) return false; if (strspn ( $text, chr ( $pad )、 strlen ( $text ) - $pad ) != $pad) falseを返します。
asp.net プログラム コード
コードは次のとおりです | コードをコピー |
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Security.Cryptography; using System.Text;
namespace WindowsFormsApplication1 { /// /// DES 暗号化文字列と復号化文字列 /// //< summary> ) 0, 8)); byte[] rgbIV = rgbKey; inputbytearray = enCoding.utf8.getBytes (Encryptstring); foreach (mStream のバイト b) .toarray())
ret.appendformat( "{0:x2}"、b);️ /// 復号化キーは暗号化キーと同じ 8 桁でなければなりません
Returns&g t; public static string DecryptDES(string decryptString, string decryptKey = "11001100") rgbKey = ASCIIEncoding.ASCII.GetBytes(decryptKey); byte[] rgbIV = rgbKey ; inputByteArray = new byte[decryptString.Length / 2]; int i = (Convert.ToInt32 (decryptString.Substring " ServiceProvider(); MemoryStream mStream = new MemoryStream(); CryptoStream cStream( mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write); return エンコーディング。 UTF8.GetString(mStream. ToArray() );
http://www.bkjia.com/PHPjc/444596.html
www.bkjia.com
本当
http://www.bkjia.com/PHPjc/444596.html
技術記事
私たちの作業では、php で暗号化を生成し、asp.net で受け取ったパスワードを復号化する必要があるため、以下に PHP と asp.net C# の間で共有できる可逆暗号化アルゴリズムを見つけました。
|
|