Demo aes crypto: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „= Demo AES Crypto (PowerShell) = = Schlüssel und Initialisierungsvektor erzeugen = $key = New-Object byte[] 32 [Security.Cryptography.RandomNumberGenerator]:…“) |
|||
| Zeile 1: | Zeile 1: | ||
= Demo AES Crypto (PowerShell) = | = Demo AES Crypto (PowerShell) = | ||
| − | = Schlüssel und | + | = Schlüssel und IV erzeugen = |
| − | $key = New-Object byte[] 32 | + | ; erzeugt ein leeres Byte-Array mit 32 Bytes für den AES-Schlüssel |
| − | [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($key) | + | * $key = New-Object byte[] 32 |
| + | ; füllt den Schlüssel mit kryptografisch sicheren Zufallswerten | ||
| + | * [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($key) | ||
| − | $iv = New-Object byte[] 16 | + | ; erzeugt ein leeres Byte-Array mit 16 Bytes für den Initialisierungsvektor (IV) |
| − | [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($iv) | + | * $iv = New-Object byte[] 16 |
| + | ; füllt den IV mit kryptografisch sicheren Zufallswerten | ||
| + | * [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($iv) | ||
= Klartext definieren = | = Klartext definieren = | ||
| − | $plaintext = "Dies ist eine AES-Testnachricht." | + | ; legt den zu verschlüsselnden Klartext fest |
| + | * $plaintext = "Dies ist eine AES-Testnachricht." | ||
| − | = AES-Objekt erzeugen und | + | = AES-Objekt erzeugen = |
| − | $aes = [System.Security.Cryptography.Aes]::Create() | + | ; erzeugt das AES-Objekt und konfiguriert Modus und Padding |
| − | $aes.Key = $key | + | * $aes = [System.Security.Cryptography.Aes]::Create() |
| − | $aes.IV = $iv | + | * $aes.Key = $key |
| − | $aes.Mode = "CBC" | + | * $aes.IV = $iv |
| − | $aes.Padding = "PKCS7" | + | * $aes.Mode = "CBC" |
| + | * $aes.Padding = "PKCS7" | ||
= Verschlüsseln = | = Verschlüsseln = | ||
| − | $encryptor = $aes.CreateEncryptor() | + | ; erzeugt den Verschlüsseler |
| − | $bytes = [System.Text.Encoding]::UTF8.GetBytes($plaintext) | + | * $encryptor = $aes.CreateEncryptor() |
| − | $cipher = $encryptor.TransformFinalBlock($bytes, 0, $bytes.Length) | + | ; wandelt den Klartext in Bytes um |
| + | * $bytes = [System.Text.Encoding]::UTF8.GetBytes($plaintext) | ||
| + | ; verschlüsselt die Bytes | ||
| + | * $cipher = $encryptor.TransformFinalBlock($bytes, 0, $bytes.Length) | ||
| − | = | + | = Ergebnis als Base64 anzeigen = |
| − | $cipher_b64 = [Convert]::ToBase64String($cipher) | + | ; wandelt die verschlüsselten Bytes nach Base64 um |
| − | $cipher_b64 | + | * $cipher_b64 = [Convert]::ToBase64String($cipher) |
| + | ; zeigt den verschlüsselten Text an | ||
| + | * $cipher_b64 | ||
| − | = AES | + | = AES für Entschlüsselung neu erstellen = |
| − | $aes2 = [System.Security.Cryptography.Aes]::Create() | + | ; neues AES-Objekt mit gleichem Schlüssel und IV |
| − | $aes2.Key = $key | + | * $aes2 = [System.Security.Cryptography.Aes]::Create() |
| − | $aes2.IV = $iv | + | * $aes2.Key = $key |
| − | $aes2.Mode = "CBC" | + | * $aes2.IV = $iv |
| − | $aes2.Padding = "PKCS7" | + | * $aes2.Mode = "CBC" |
| + | * $aes2.Padding = "PKCS7" | ||
= Entschlüsseln = | = Entschlüsseln = | ||
| − | $decryptor = $aes2.CreateDecryptor() | + | ; erzeugt den Entschlüsseler |
| − | $cipher_bytes = [Convert]::FromBase64String($cipher_b64) | + | * $decryptor = $aes2.CreateDecryptor() |
| + | ; wandelt den Base64-Text wieder in Bytes um | ||
| + | * $cipher_bytes = [Convert]::FromBase64String($cipher_b64) | ||
| − | $plain_bytes = $decryptor.TransformFinalBlock($cipher_bytes, 0, $cipher_bytes.Length) | + | ; entschlüsselt die Daten |
| − | $plain = [System.Text.Encoding]::UTF8.GetString($plain_bytes) | + | * $plain_bytes = $decryptor.TransformFinalBlock($cipher_bytes, 0, $cipher_bytes.Length) |
| − | $plain | + | ; wandelt die Bytes zurück zu UTF8-Text |
| + | * $plain = [System.Text.Encoding]::UTF8.GetString($plain_bytes) | ||
| + | ; zeigt den entschlüsselten Text | ||
| + | * $plain | ||
Aktuelle Version vom 6. Dezember 2025, 11:00 Uhr
Demo AES Crypto (PowerShell)
Schlüssel und IV erzeugen
- erzeugt ein leeres Byte-Array mit 32 Bytes für den AES-Schlüssel
- $key = New-Object byte[] 32
- füllt den Schlüssel mit kryptografisch sicheren Zufallswerten
- [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($key)
- erzeugt ein leeres Byte-Array mit 16 Bytes für den Initialisierungsvektor (IV)
- $iv = New-Object byte[] 16
- füllt den IV mit kryptografisch sicheren Zufallswerten
- [Security.Cryptography.RandomNumberGenerator]::Create().GetBytes($iv)
Klartext definieren
- legt den zu verschlüsselnden Klartext fest
- $plaintext = "Dies ist eine AES-Testnachricht."
AES-Objekt erzeugen
- erzeugt das AES-Objekt und konfiguriert Modus und Padding
- $aes = [System.Security.Cryptography.Aes]::Create()
- $aes.Key = $key
- $aes.IV = $iv
- $aes.Mode = "CBC"
- $aes.Padding = "PKCS7"
Verschlüsseln
- erzeugt den Verschlüsseler
- $encryptor = $aes.CreateEncryptor()
- wandelt den Klartext in Bytes um
- $bytes = [System.Text.Encoding]::UTF8.GetBytes($plaintext)
- verschlüsselt die Bytes
- $cipher = $encryptor.TransformFinalBlock($bytes, 0, $bytes.Length)
Ergebnis als Base64 anzeigen
- wandelt die verschlüsselten Bytes nach Base64 um
- $cipher_b64 = [Convert]::ToBase64String($cipher)
- zeigt den verschlüsselten Text an
- $cipher_b64
AES für Entschlüsselung neu erstellen
- neues AES-Objekt mit gleichem Schlüssel und IV
- $aes2 = [System.Security.Cryptography.Aes]::Create()
- $aes2.Key = $key
- $aes2.IV = $iv
- $aes2.Mode = "CBC"
- $aes2.Padding = "PKCS7"
Entschlüsseln
- erzeugt den Entschlüsseler
- $decryptor = $aes2.CreateDecryptor()
- wandelt den Base64-Text wieder in Bytes um
- $cipher_bytes = [Convert]::FromBase64String($cipher_b64)
- entschlüsselt die Daten
- $plain_bytes = $decryptor.TransformFinalBlock($cipher_bytes, 0, $cipher_bytes.Length)
- wandelt die Bytes zurück zu UTF8-Text
- $plain = [System.Text.Encoding]::UTF8.GetString($plain_bytes)
- zeigt den entschlüsselten Text
- $plain