我用swift写了一个应用程序,我需要AES加密和解密功能,我从另一个收到了加密数据.Net解决方案,但我找不到解决方案.

这是我的.网络加密:

 public static byte[] AES_Encrypt(byte[] bytesToBeEncrypted, byte[] passwordBytes)
    {
        byte[] encryptedBytes = null;

        byte[] saltBytes = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };

        using (MemoryStream ms = new MemoryStream())
        {
            using (RijndaelManaged AES = new RijndaelManaged())
            {
                AES.KeySize = 256;
                AES.BlockSize = 128;

                var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
                AES.Key = key.GetBytes(AES.KeySize / 8);
                AES.IV = key.GetBytes(AES.BlockSize / 8);

                AES.Mode = CipherMode.CBC;

                using (var cs = new CryptoStream(ms, AES.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    cs.Write(bytesToBeEncrypted, 0, bytesToBeEncrypted.Length);
                    cs.Close();
                }
                encryptedBytes = ms.ToArray();
            }
        }

        return encryptedBytes;
    }

我需要用swift解密函数.

推荐答案

我找到了解决方案,这是一个很好的库.

跨平台256bit AES加密/解密.

该项目包含256位AES加密的实现,可在所有平台(C#、iOS、Android)上运行.其中一个关键目标是使AES能够在所有平台上以简单的实现工作.

支持的平台:

https://github.com/Pakhee/Cross-platform-AES-encryption

Swift相关问答推荐

MyApp类型不符合协议App''''

Swift-Can无法在AudioKit中找出简单的麦克风效果-文件链

RxSwift .debounce,.throttle用于分页

仅使用@MainActor注释类的部分时的并发问题

异步/等待函数的XCTAssertThrowsError

Result类型的初始值设定项失败?

如何判断设备是否为 Vision Pro - Xcode 15 Beta 4

如何返回一个通过 SwiftUI 中的另一个协议间接继承 View 协议的 struct ?

URL appendPathComponent(_:) 已弃用?

您可以在运行时访问 Picker 元素并更改它们的 colored颜色 吗

任何使 ScrollView 像 List 一样执行更灵活的修饰符?

在 Swift 4 中实现自定义解码器

在 Swift 中计算两个日期之间的差异

如何使用 Swift/iOS 为人类书写的笔画制作动画?

Swift 3.0 的 stringByReplacingOccurencesOfString()

DispatchQueue:不能在非主线程上使用 asCopy = NO 调用

使用 phimagemanager 将图像保存到自定义相册?

如何在 Swift 中使用 Crashlytics 登录?

在 Swift 中子类化 NSObject - 初始化器的最佳实践

使用 swift IOS 使 UIBarButtonItem 消失