Save up to 70% on our assets during the Black Friday sale in the Unreal Marketplace

Protect your data with AESCryptor in Unreal Engine 5

Leverage AES-128/192/256 encryption through Blueprint nodes or C++ functions. Secure save games, API keys, and more on Windows.

AESCrypter - FAB Marketplace - Unreal Engine Plugin

OVerview

The AESCryptor plugin provides powerful AES encryption and decryption capabilities directly in Unreal Engine 5. It supports three key sizes (128-bit, 192-bit, 256-bit) and allows developers to secure their sensitive data using industry-standard encryption directly through Blueprint nodes or C++ functions.

Screenshots

AESCrypter - FAB Marketplace - Unreal Engine Plugin

AESCryptor: Showcase

Protect your game saves easily with AESCryptor. Using AES-128/192/256 encryption, secure sensitive data like save games and API keys directly through Blueprint nodes or C++ functions. AESCryptor is perfect for Unreal Engine projects on Windows, offering high security with easy integration. Its broad platform support and detailed documentation make it simple to get started, whether you’re a beginner or a pro.

Documentation & News

Table of Content

Getting Started

  1. Download the AESCryptor plugin and place it in the Plugins folder of your Unreal Engine project.
  2. Navigate to Edit > Plugins and enable AESCryptor.
  3. Restart the editor once more to apply the changes.
  1. Download the AESCryptor plugin from the FAB Marketplace and import it into your Unreal Engine project.
  2. Navigate to Edit > Plugins and enable AESCryptor.
  3. Restart the editor once more to apply the changes.

General Explanation

General Nodes

GenerateKey: Generates a random AES key (128/192/256-bit) and returns it as Base64.
  • Key Size (Enum) – AES_128 / AES_192 / AES_256
  • Out: Base64 Key (String)

GenerateSalt:
Creates a 16-byte random salt and returns it as Base64 (use with PBKDF2).

  • Out: Base64 Salt (String, 16 bytes)
DeriveKeyFromPassword: Derives a fixed AES key from Password + Salt using PBKDF2-HMAC-SHA256.
  • Password (String)
  • Salt (Base64) (String, 16 bytes recommended)
  • Iterations (Int, e.g., 200000)
  • Key Size (Enum) – AES_128 / AES_192 / AES_256
  • Out: Success (Bool), Error (String), Base64 Key (String)
GenerateNonceGCM: Generates a 12-byte nonce for AES-GCM and returns it as Base64.
  • Out: Base64 Nonce (String, 12 bytes)

Base64 Nodes

ToBase64_String: Encodes a UTF-8 string to Base64.
  • Input (String)
  • Out: Success (Bool), Error (String), Base64 Output (String)
FromBase64_String: Decodes a Base64 string back to UTF-8 text.
  • Base64 Input (String)
  • Out: Success (Bool), Error (String), Output String (UTF-8)
ToBase64_Bytes: Encodes a byte array to a Base64 string.
  • Bytes (Byte Array)
  • Out: Success (Bool), Error (String), Base64 Output (String)
FromBase64_Bytes: Decodes a Base64 string into a byte array.
  • Base64 Input (String)
  • Out: Success (Bool), Error (String), Output Bytes (Byte Array)

Encryption & Decryption Nodes

EncryptStringAES_GCM: Encrypts text/binary with AES-GCM; returns Cipher and Tag as Base64.
  • Input (String) – set bInputIsBase64 if it’s Base64 bytes
  • Key (String) – set bKeyIsBase64 if provided as Base64
  • Nonce (Base64) (String, 12 bytes)
  • Key Size (Enum), bInputIsBase64 (Bool), bKeyIsBase64 (Bool)
  • Out: Success (Bool), Error (String), Cipher (Base64), Tag (Base64)
DecryptStringAES_GCM: Decrypts AES-GCM using Cipher+Tag+Nonce+Key; verifies integrity.
  • Cipher (Base64) (String), Tag (Base64) (String)
  • Key (String) – set bKeyIsBase64 if provided as Base64
  • Nonce (Base64) (String), Key Size (Enum)
  • bKeyIsBase64 (Bool), bOutputAsBase64 (Bool)
  • Out: Success (Bool), Error (String), Output Text (String or Base64)
EncryptStringAES_GCM_Packed: Encrypts and outputs a single Base64 string packing Nonce||Cipher||Tag.
  • Input (String) – set bInputIsBase64 if it’s Base64 bytes
  • Key (String) – set bKeyIsBase64 if provided as Base64
  • Key Size (Enum), bInputIsBase64 (Bool), bKeyIsBase64 (Bool)
  • Out: Success (Bool), Error (String), Packed (Base64)
DecryptStringAES_GCM_Packed: Decrypts a single Base64 string created by the Packed encrypt node.
  • Packed (Base64) (String, format Nonce||Cipher||Tag)
  • Key (String) – set bKeyIsBase64 if provided as Base64
  • Key Size (Enum), bKeyIsBase64 (Bool), bOutputAsBase64 (Bool)
  • Out: Success (Bool), Error (String), Output Text (String or Base64)
EncryptStringAES_GCM_PasswordEasy: Password-only flow: outputs one Base64 string packing Salt||Nonce||Cipher||Tag.
  • Input (String) – set bInputIsBase64 if it’s Base64 bytes
  • Password (String), Iterations (Int, e.g., 200000)
  • Out: Success (Bool), Error (String), Packed (Base64)
DecryptStringAES_GCM_PasswordEasy: Decrypts the PasswordEasy format (Salt||Nonce||Cipher||Tag) with the same password and iterations.
  • Packed (Base64) (String), Password (String), Iterations (Int)
  • bOutputAsBase64 (Bool)
  • Out: Success (Bool), Error (String), Output Text (String or Base64)

Encryption & Decryption Nodes

EncryptStringGCMAsync: Asynchronously encrypts with AES-GCM; returns Cipher and Tag as Base64 via the completion pin.
  • Input (String), Key (String), Nonce (Base64) (String), Key Size, bInputIsBase64, bKeyIsBase64
  • On Completed: Success (Bool), Error (String), Cipher (Base64), Tag (Base64)
DecryptStringGCMAsync: Asynchronously decrypts AES-GCM using Cipher+Tag+Nonce+Key.
  • Cipher (Base64), Tag (Base64), Key, Nonce (Base64), Key Size, bKeyIsBase64, bOutputAsBase64
  • On Completed: Success (Bool), Error (String), Output Text (String or Base64)
EncryptStringGCM_PackedAsync: Asynchronously encrypts and outputs a single Packed Base64 string (Nonce||Cipher||Tag).
  • Input, Key, Key Size, bInputIsBase64, bKeyIsBase64
  • On Completed: Success (Bool), Error (String), Packed (Base64)
DecryptStringGCM_PackedAsync: Asynchronously decrypts a Packed Base64 string created by the Packed encrypt node.
  • Packed (Base64), Key, Key Size, bKeyIsBase64, bOutputAsBase64
  • On Completed: Success (Bool), Error (String), Output Text (String or Base64)
EncryptStringGCM_PasswordEasyAsync: Asynchronously encrypts using only a password; returns Packed Base64 (Salt||Nonce||Cipher||Tag).
  • Input, Password, Iterations, bInputIsBase64
  • On Completed: Success (Bool), Error (String), Packed (Base64)
DecryptStringGCM_PasswordEasyAsync: Asynchronously decrypts the PasswordEasy Packed format with the same password and iterations.
  • Packed (Base64), Password, Iterations, bOutputAsBase64
  • On Completed: Success (Bool), Error (String), Output Text (String or Base64)

Usage in Blueprints

AESCryptor – AES Encryption & Decryption (String/Bytes/Base64)
One of three Methods

Blueprint Example

  1. Go to the /Plugins/AESCryptor content folder.
    1. If necessary, enable “Show Plugin Content” under “Settings” in your Content Browser.
    2. Then the folder will appear.
  2. Open the “Blueprints” subfolder and the “BP_NodeExample” file there.
  3. Here you’ll find usage examples.

Usage in C++

				
					// in your build.cs
PublicDependencyModuleNames.AddRange(new[] { "Core", "CoreUObject", "Engine", "AESCryptor" });

				
			
				
					// in your code
#include "AESCryptorBPLibrary.h"
#include "AESCryptorTypes.h"

				
			

Method 1: GCM Packed

				
					FString KeyB64;
UAESCryptorBPLibrary::GenerateKey(EAESKeySize::AES_256, KeyB64);

bool bOk; FString Err; FString Packed; 
UAESCryptorBPLibrary::EncryptStringAES_GCM_Packed(
    TEXT("Top secret"), KeyB64, EAESKeySize::AES_256,
    /*bInputIsBase64=*/false, /*bKeyIsBase64=*/true, bOk, Err, Packed);

FString Plain;
UAESCryptorBPLibrary::DecryptStringAES_GCM_Packed(
    Packed, KeyB64, EAESKeySize::AES_256,
    /*bKeyIsBase64=*/true, /*bOutputAsBase64=*/false, bOk, Err, Plain);

				
			

Method 2: PasswordEasy

				
					const FString Password = TEXT("MyStrongPW!");
const int32 Iter = 200000;

bool bOk; FString Err; FString Packed;
UAESCryptorBPLibrary::EncryptStringAES_GCM_PasswordEasy(
    TEXT("Hello world"), Password, Iter, /*bInputIsBase64=*/false,
    bOk, Err, Packed);

FString Plain;
UAESCryptorBPLibrary::DecryptStringAES_GCM_PasswordEasy(
    Packed, Password, Iter, /*bOutputAsBase64=*/false, bOk, Err, Plain);

				
			

Method 3: Manual Mode

				
					FString KeyB64; UAESCryptorBPLibrary::GenerateKey(EAESKeySize::AES_256, KeyB64);
FString NonceB64 = UAESCryptorBPLibrary::GenerateNonceGCM();

bool bOk; FString Err; FString CipherB64, TagB64;
UAESCryptorBPLibrary::EncryptStringAES_GCM(
    TEXT("Data"), KeyB64, NonceB64, EAESKeySize::AES_256,
    /*bInputIsBase64=*/false, /*bKeyIsBase64=*/true, bOk, Err, CipherB64, TagB64);

FString Plain;
UAESCryptorBPLibrary::DecryptStringAES_GCM(
    CipherB64, TagB64, KeyB64, NonceB64, EAESKeySize::AES_256,
    /*bKeyIsBase64=*/true, /*bOutputAsBase64=*/false, bOk, Err, Plain);

				
			

Troubleshooting & Common Issues

No errors are currently known. Please report any errors as quickly as possible so they can be fixed as soon as possible.

Demonstration Content

You can find a demonstration map in the Unreal Engine’s AESCryptor Plugin Folder. Just go to “/All/Plugins/AESCrypter Content/Maps/” and load the Map. Hit “Play” and try it out by using the Demo UI which helps you to understand the plugin.

If you don’t see a “/Plugins/” Folder, go to your Content Drawer and click on the topper right corner on “Settings“. Activate “Show Plugin Content“.

AESCrypter

Roadmap

Scroll to Top