


Beispielcode-Sharing zur konsistenten Implementierung der DES-Verschlüsselung und -Entschlüsselung in PHP+C#
Der folgende Editor zeigt Ihnen ein Beispiel für DES-Verschlüsselung und -Entschlüsselung in PHP, das mit C# konsistent ist. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.
PHP implementiert DES-Verschlüsselung und -Entschlüsselung im Einklang mit C#. Sie können viele davon im Internet durchsuchen, aber nach dem Testen stellen Sie fest, dass sie alle unbrauchbar sind. Der folgende korrekte Code wurde von mir nach viel harter Arbeit gefunden. Ich hoffe, Sie können es während der Systemintegration verwenden.
Hinweis: Die Länge des Schlüssels beträgt maximal 8 Zeichen.
//C# 版DES 加解密算法 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Data.SqlClient; using System.Security.Cryptography; using System.IO; using System.Text; public class Des{ //加解密密钥 private static string skey = "12345678"; //初始化向量 private static byte[] DESIV = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF }; #region DESEnCode DES加密 public static string DESEnCode(string pToEncrypt, string sKey) { pToEncrypt = HttpContext.Current.Server.UrlEncode(pToEncrypt); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt); //建立加密对象的密钥和偏移量 //原文使用ASCIIEncoding.ASCII方法的GetBytes方法 //使得输入密码必须输入英文文本 des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); foreach (byte b in ms.ToArray()) { ret.AppendFormat("{0:X2}", b); } ret.ToString(); return ret.ToString(); } #endregion /// <summary> /// /// </summary> /// <param name="pToDecrypt"> 待解密的字符串</param> /// <param name="sKey"> 解密密钥,要求为8字节,和加密密钥相同</param> /// <returns>解密成功返回解密后的字符串,失败返源串</returns> #region DESDeCode DES解密 public static string DESDeCode(string pToDecrypt, string sKey) { // HttpContext.Current.Response.Write(pToDecrypt + "<br>" + sKey); // HttpContext.Current.Response.End(); DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for (int x = 0; x < pToDecrypt.Length / 2; x++) { int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); return HttpContext.Current.Server.UrlDecode(System.Text.Encoding.Default.GetString(ms.ToArray())); } #endregion }
<?php class DES { var $key; var $iv; //偏移量 function DES( $key, $iv=0 ) { //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 ); } } ?>
Das obige ist der detaillierte Inhalt vonBeispielcode-Sharing zur konsistenten Implementierung der DES-Verschlüsselung und -Entschlüsselung in PHP+C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Titel: Datenverschlüsselung und -entschlüsselung mit ReactQuery und Datenbank Einführung: In diesem Artikel wird erläutert, wie Sie ReactQuery und Datenbank für die Datenverschlüsselung und -entschlüsselung verwenden. Wir werden ReactQuery als Datenverwaltungsbibliothek verwenden und es mit der Datenbank kombinieren, um Datenverschlüsselungs- und -entschlüsselungsvorgänge durchzuführen. Durch die Kombination dieser beiden Technologien können wir sensible Daten sicher speichern und übertragen und bei Bedarf Verschlüsselungs- und Entschlüsselungsvorgänge durchführen, um die Datensicherheit zu gewährleisten. Text: 1. ReactQue

Verschlüsseln und Entschlüsseln sensibler Daten mithilfe der Yii-Framework-Middleware Einführung: In modernen Internetanwendungen sind Datenschutz und Datensicherheit sehr wichtige Themen. Um sicherzustellen, dass die sensiblen Daten der Benutzer nicht für unbefugte Besucher zugänglich sind, müssen wir diese Daten verschlüsseln. Das Yii-Framework bietet uns eine einfache und effektive Möglichkeit, die Funktionen zum Verschlüsseln und Entschlüsseln sensibler Daten zu implementieren. In diesem Artikel erfahren Sie, wie Sie dies mithilfe der Middleware des Yii-Frameworks erreichen. Einführung in das Yii-Framework Das Yii-Framework ist ein leistungsstarkes PHP-Framework.

Dieser Artikel ist ein Tutorial zum Verschlüsseln und Entschlüsseln von Dateien ohne die Verwendung von Verschlüsselungs- und Entschlüsselungstools von Drittanbietern. Ein Tutorial zum Hinzufügen von Verschlüsselungs- und Entschlüsselungsmethoden zum Rechtsklick-Menü von Win11 Erstellen Sie ein Backup, bevor Sie fortfahren. 1. Drücken Sie zunächst die Tastenkombination [Win+R] auf der Tastatur, um Ausführen zu öffnen, geben Sie dann den Befehl [regedit] ein und drücken Sie [OK oder Enter], um den Registrierungseditor zu öffnen muss zugelassen werden Nimmt diese App Änderungen an Ihrem Gerät vor? Klicken Sie auf [Ja]; 3. Erweitern Sie das Fenster des Registrierungseditors auf den folgenden Pfad: HKEY_CURRENT_USER\Software\Microsoft\Windows\Curr

Da WeChat-Miniprogramme auf dem Markt für mobile Anwendungen immer beliebter werden, erhält auch ihre Entwicklung immer mehr Aufmerksamkeit. In kleinen Programmen wird häufig PHP als häufig verwendete Backend-Sprache verwendet, um die Ver- und Entschlüsselung sensibler Daten zu übernehmen. In diesem Artikel wird erläutert, wie Sie mit PHP die Verschlüsselung und Entschlüsselung im WeChat-Applet implementieren. 1. Was sind Verschlüsselung und Entschlüsselung? Unter Verschlüsselung versteht man die Umwandlung sensibler Daten in eine unlesbare Form, um sicherzustellen, dass die Daten während der Übertragung nicht gestohlen oder manipuliert werden. Unter Entschlüsselung versteht man die Wiederherstellung verschlüsselter Daten in Originaldaten. In kleinen Programmen umfassen die Verschlüsselung und Entschlüsselung normalerweise

PHP-Postfachentwicklung: E-Mail-Verschlüsselungs- und Entschlüsselungsfunktionen realisieren Mit der zunehmenden Entwicklung der Informationsübertragung ist E-Mail zu einer der wichtigsten Kommunikationsmethoden für Menschen geworden. Die daraus resultierenden Sicherheitsprobleme haben jedoch nach und nach die Aufmerksamkeit der Menschen auf sich gezogen. Um die Sicherheit von E-Mails zu gewährleisten, sind Verschlüsselung und Entschlüsselung zu wichtigen Aspekten beim Senden und Empfangen von E-Mails geworden. In diesem Artikel wird erläutert, wie Sie mithilfe von PHP E-Mail-Verschlüsselungs- und -Entschlüsselungsfunktionen entwickeln, um die E-Mail-Sicherheit zu verbessern. 1. Prinzip und Funktion der Verschlüsselung Die E-Mail-Verschlüsselung besteht darin, den E-Mail-Inhalt mithilfe eines bestimmten Algorithmus so umzuwandeln, dass er zusätzlich zum Empfänger gelangt

Die Java-Funktionsbibliothek bietet eine Fülle von Verschlüsselungs- und Entschlüsselungstools, darunter JCE, JCA, Apache CommonsCrypt usw. JCE stellt Verschlüsselungsalgorithmen und -funktionen bereit, JCA stellt Schnittstellen für den Zugriff auf Verschlüsselungsdienstanbieter bereit und Apache CommonsCrypt enthält weitere Verschlüsselungsalgorithmen und -tools. Der praktische Fall zeigt, wie man mit JCE Text mit AES verschlüsselt und Base64-codierten Chiffretext generiert.

Wie verwende ich das SectionReader-Modul von Go, um den Inhalt eines bestimmten Teils einer Datei zu ver- und entschlüsseln? Einführung: In der Entwicklung ist die Verschlüsselung und Entschlüsselung von Dateiinhalten eine sehr häufige Anforderung. Die Go-Sprache bietet eine Fülle von Bibliotheken und Modulen, um diesen Bedarf zu decken. Unter diesen ist SectionReader ein sehr praktisches Modul, mit dem wir den Inhaltsbereich einer großen Datei angeben und Lese-, Verschlüsselungs- und Entschlüsselungsvorgänge durchführen können. In diesem Artikel wird erläutert, wie Sie das SectionReader-Modul von Go zur Implementierung verwenden

Beispiele für die Datenverschlüsselung und -entschlüsselung beim Andocken der Tencent Cloud Server-API-Schnittstelle in PHP Mit der weit verbreiteten Anwendung von Cloud-Servern haben immer mehr Entwickler damit begonnen, ihre Anwendungen auf Cloud-Servern bereitzustellen. Bei der Verbindung mit der Tencent Cloud-Server-API-Schnittstelle ist die Datenverschlüsselung und -entschlüsselung eine wichtige Verbindung. In diesem Artikel wird ein Beispiel für die Datenverschlüsselung und -entschlüsselung in PHP vorgestellt. Bei der Verbindung mit der API-Schnittstelle des Tencent Cloud-Servers müssen wir normalerweise einige vertrauliche Daten verschlüsseln, um die Datensicherheit zu gewährleisten. Gleichzeitig ist es auch notwendig, abzuholen
