【UE4学习】21_Crypto++_AES加密解密

这篇博客介绍了如何在Unreal Engine 4.17.2环境下,利用Crypto++ 5.6.5库进行AES加密解密。由于引擎内置的API无法满足需求,作者详细阐述了从下载编译Crypto++,拷贝库文件到Unreal Engine,到创建自定义AES插件的完整过程,并提供了相关参考资料。
摘要由CSDN通过智能技术生成


环境


简介


步骤

下载并编译 Crypto++ 5.6.5

  • 右键crylib属性,C/C++ ——> 代码生成 ——> 运行库 设置为 DLL(/MD)
    这里写图片描述
  • 选择 release x64编译
  • 可以在“cryptopp565\x64\Output\Release”路径下找到cryptlib.lib

为引擎拷贝必要文件

  • 将 cryptlib.lib拷贝到“UE_4.17\Engine\Source\ThirdParty\CryptoPP\5.6.5\lib\Win64\VS2015”,如果没有文件夹,请自行建立。

  • 将cryptopp565源代码的.h头文件全部拷贝到“UE_4.17\Engine\Source\ThirdParty\CryptoPP\5.6.5\include”,如果没有文件夹,请自行建立。

  • 如果想省事,可用题主编译好的压缩文件,直接解压到“UE_4.17\Engine\Source\ThirdParty\CryptoPP\5.6.5\”文件夹下。(下载链接

创建自己的AES插件

  • 创建好插件后,在.build.cs添加CryptoPP(可能不用这一步)
        PrivateDependencyModuleNames.AddRange(
            new string[]
            {
                "CoreUObject",
                "Engine",
                "Slate",
                "SlateCore",
                "CryptoPP",

                // ... add private dependencies that you statically link with here ...  
            }
            );

 bEnableExceptions = true;
 Definitions.Add("BOOST_SYSTEM_NOEXCEPT");
  • AESBPLibrary.h
// Copyright 1998-2017 Epic Games, Inc. All Rights Reserved.

#pragma once

#include "Engine.h"
#include "AESBPLibrary.generated.h"

UCLASS()
class UAESBPLibrary : public UBlueprintFunctionLibrary
{
    GENERATED_UCLASS_BODY()

    ///ECB mode
    UFUNCTION(BlueprintCallable, meta = (DisplayName = "ECB_AESEncryptData", Keywords = "ECB_AESEncryptData", aes_key = "0123456789ABCDEF0123456789ABCDEF"), Category = "AES")
        static FString ECB_AESEncryptData(FString aes_content, FString aes_key);

    UFUNCTION(BlueprintCallable, meta = (DisplayName = "ECB_AESDecryptData", Keywords = "ECB_AESDecryptData", aes_key = "0123456789ABCDEF0123456789ABCDEF"), Category = "AES")
        static FString ECB_AESDecryptData(FString aes_content, FString aes_key, bool & result);

    ///CBC mode
    UFUNCTION(BlueprintCallable, meta = (DisplayName = "CBC_AESEncryptData", Keywords = "CBC_AESEncryptData", aes_key = "0123456789ABCDEF0123456789ABCDEF", aes_IV = "ABCDEF0123456789"), Category = "AES")
        static FString CBC_AESEncryptData(FString aes_content, FString aes_key, FString aes_IV);

    UFUNCTION(BlueprintCallable, meta = (DisplayName = "CBC_AESDecryptData", Keywords = "CBC_AESDecryptData", aes_key = "0123456789ABCDEF0123456789ABCDEF", aes_IV = "ABCDEF0123456789"), Category = "AES")
        static FString CBC_AESDecryptData(FString aes_content, FString aes_key, FString aes_IV, bool & result);

    ///CBC_CTS mode
    UFUNCTION(BlueprintCallable, meta = (DisplayName = "CBC_CTS_AESEncryptData", Keywords = "CBC_CTS_AESEncryptData", aes_key = "0123456789ABCDEF0123456789ABCDEF", aes_IV = "ABCDEF0123456789"), Category = "AES")
        static FString CBC_CTS_AESEncryptData(FString aes_content, FString aes_key, FString aes_IV);

    UFUNCTION(BlueprintCallable, meta = (DisplayName = "CBC_CTS_AESDecryptData", Keywords = <
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值