带有加密提交问题的iOS App

时间:2017-01-21 07:33:26

标签: ios iphone encryption cryptography appstore-approval

我的应用程序我使用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", $0) }
        let resultString = hexBytes.joined(separator: "")
        return resultString
    }

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

1)您的应用是否设计为使用加密技术,还是包含或包含加密技术? (即使您的应用仅使用iOS或macOS中提供的加密,也请选择是。)*

据我了解,我的答案是或者我可以回答NO,因为sha256不是加密,它只是哈希而你无法解密吗?

2)您的应用是否符合以下任何条件: (a)有资格获得第5类第2部分规定的一项或多项豁免 (b)加密的使用仅限于操作系统内的加密(iOS或macOS) (c)仅通过HTTPS拨打电话 (d)应用程序仅在美国和/或加拿大提供

确保您的应用符合此处列出的豁免条件。您有责任对产品进行适当的分类。对您的应用进行错误分类可能会导致您违反美国出口法律,并可能导致您受到处罚,包括您的应用从App Store中删除。在回答问题之前,请仔细阅读常见问题解答。

如果您的应用加密是:您可以为问题#2选择是: (a)仅限于在操作系统(iOS或macOS)中使用加密 (b)仅限于通过HTTPS拨打电话 (c)专为医疗最终用途而设计 (d)仅限于知识产权和版权保护 (e)仅限于认证,数字签名或数据或文件的解密 (f)特别设计和限制用于银行业务或"货币交易&#34 ;;要么 (g)限于"固定"数据压缩或编码技术 如果您的应用符合“美国出口管理条例”第2部分第5类注释4中提供的说明,您也可以选择“是”。

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

我可以对此问题回答“是”吗?

如果不是,我会得到3d问题:

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

据我了解,答案是

4)您的应用是否实施了任何标准加密算法,而不是在Apple的iOS或macOS中使用或访问加密?

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

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

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

1 个答案:

答案 0 :(得分:1)

关键是“选择是,即使您的应用仅使用iOS或macOS中提供的加密。”

由于SHA256未加密,因此对问题1回答否。

加密哈希函数不加密,因为它是单向函数,加密是一种可逆的双向函数。