【发布时间】:2017-06-06 05:19:28
【问题描述】:
我的应用程序我使用 sha256 加密(实际上它是一个哈希函数,所以你不能解密它)。对于对服务器的每个请求,我需要创建这样一个字符串“param1|param2|param3”并用 sha256 加密(我会得到encryptedString),我需要添加第四个参数"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 中可用的加密,也请选择是。)*
据我了解,我的回答是 YES 。 或者我可以回答否,因为 sha256 不是加密,它只是哈希,你不能解密它?
2) 您的应用是否满足以下任一条件: (a) 符合第 5 类第 2 部分规定的一项或多项豁免条件 (b) 加密的使用仅限于操作系统(iOS 或 macOS)内的加密 (c) 仅通过 HTTPS 进行调用 (d) 应用仅在美国和/或加拿大提供
确保您的应用符合此处列出的豁免标准。您有责任对您的产品进行正确分类。对您的应用进行错误分类可能会导致您违反美国出口法律,并可能使您受到处罚,包括将您的应用从 App Store 中删除。在回答问题之前,请仔细阅读常见问题解答。
如果您的应用程序的加密是:您可以为问题 #2 选择“是”: (a) 仅限于在操作系统(iOS 或 macOS)内使用加密 (b) 仅限于通过 HTTPS 进行调用 (c) 专为医疗最终用途而设计 (d) 仅限于知识产权和版权保护 (e) 仅限于身份验证、数字签名或数据或文件的解密 (f) 专为银行用途或“货币交易”而设计和限制;要么 (g) 仅限于“固定”数据压缩或编码技术 如果您的应用符合美国出口管理条例第 2 部分第 5 类注释 4 中提供的描述,您也可以选择“是”。
我在这里回答是的,一切都很简单,我只需在info.plist文件中插入<key>ITSAppUsesNonExemptEncryption</key><false/>即可。
我可以对这个问题回答“是”吗?
如果否,我会收到 3d 问题:
3) 您的应用是否实施了任何专有的或尚未被国际标准机构(IEEE、IETF、ITU 等)接受为标准的加密算法?
据我了解,答案是NO
4) 您的应用是否实施了任何标准加密算法来代替或补充使用或访问 Apple 的 iOS 或 macOS 中的加密?
据我了解,答案是YES 在这种情况下,我需要:
请上传一封简短的信函,说明您了解提交工业和安全局 (BIS) 要求的年终自我分类报告的法律义务。
我需要在哪里提交这份工业和安全局要求的年终自我分类报告?或者我可以对第二个问题回答 YES 吗?
【问题讨论】:
-
您可以对问题 2 回答“是”。
标签: ios iphone encryption cryptography appstore-approval