iOS 应用存在加密提交问题

iOS App with encryption submit issue

我的应用程序我使用sha256加密(实际上它是一个散列函数,所以你不能解密它)。对于每个对服务器的请求,我需要制作这样一个字符串 "param1|param2|param3" 并使用 sha256 对其进行加密(我将得到 encryptedString),我需要添加第 4 个参数 "hash" = encryptedString。这是应用程序中加密的唯一用途

sha256函数为:

import Security

func encryption_sha256(_ originString: String) -> String {
        let data = originString.data(using: String.Encoding.utf8)!
        var hash = [UInt8](repeating: 0, count: Int(CC_SHA256_DIGEST_LENGTH))
        CC_SHA256((data as NSData).bytes, CC_LONG(data.count), &hash)
        let hexBytes = hash.map { String(format: "%02hhx", [=11=]) }
        let resultString = hexBytes.joined(separator: "")
        return resultString
    }

当我提交到 App Store 时,我有这样的问题:

1) 您的应用程序是为使用加密技术而设计的,还是包含或结合了加密技术? (Select 可以,即使您的应用仅使用 iOS 或 macOS 中可用的加密。)*

据我了解,我的答案是 YES或者我可以回答NO吗,因为sha256不是加密,它只是散列,你不能解密?

2) 您的应用是否满足以下任一条件: (a) 有资格获得第 5 类第 2 部分规定的一项或多项豁免 (b) 加密的使用仅限于操作系统(iOS 或 macOS)内的加密 (c) 仅通过 HTTPS 进行调用 (d) 应用程序仅在 U.S 中可用。 and/or加拿大

确保您的应用符合此处列出的豁免标准。您有责任对您的产品进行正确分类。错误地对您的应用进行分类可能会导致您违反 U.S。出口法律,并可能使您受到处罚,包括您的应用程序被从 App Store 中删除。在回答问题之前仔细阅读常见问题。

如果您的应用程序的加密是: (a) 限于在操作系统(iOS 或 macOS)内使用加密 (b) 仅限于通过 HTTPS 进行调用 (c) 专为医疗最终用途而设计 (d) 仅限于知识产权 属性 和版权保护 (e) 仅限于身份验证、数字签名或数据或文件的解密 (f) 专门设计并仅限于银行用途或 "money transactions";要么 (g) 仅限于 "fixed" 数据压缩或编码技术 如果您的应用符合 U.S 第 2 部分第 5 类注释 4 中提供的说明,您也可以 select 是。出口管理条例。

我这里我回答,一切都很简单,我只需要在info.plist文件中插入<key>ITSAppUsesNonExemptEncryption</key><false/>即可

我可以对这个问题回答是吗?

如果否,我得到 3d 问题:

3) 您的应用程序是否实施了任何专有的或尚未被国际标准机构(IEEE、IETF、ITU 等)接受为标准的加密算法?

据我了解,答案是

4) 您的应用程序是否实施了任何标准加密算法来代替或补充使用或访问 Apple iOS 或 macOS 中的加密?

据我了解,答案是 在这种情况下,我需要:

请上传一封简短的信件,说明您了解您有法律义务提交工业和安全局 (BIS) 要求的年终自我分类报告。

工业和安全局要求的年终自我分类报告需要在哪里提交?或者我可以对第二个问题回答 YES 吗?

关键是"Select Yes even if your app is only utilizing the encryption available in iOS or macOS."

因为 SHA256 不是加密,所以对问题 1 回答否。

加密哈希函数不是加密,因为它们是 one-way 函数,加密是可逆的 two-way 函数。