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]:…“ |
Keine Bearbeitungszusammenfassung |
||
| 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