2017-01-21 33 views
2

我的應用程序我使用sha256加密(實際上它是一個哈希函數,所以你不能解密它)。對於每個服務器請求,我需要製作一個字符串「param1 | param2 | param3」並用sha256加密(我將得到encryptedString),並且需要添加第4個參數"hash" = encryptedString。這是在應用程序中唯一採用的加密iOS應用程序加密提交問題

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)只有進行呼叫(S)通過HTTPS (d)應用程序只能在美國和/或加拿大

是提供確保自己的應用滿足以下列出的豁免標準。您有責任對您的產品進行適當的分類。不正確地對您的應用進行分類可能會導致您違反美國出口法律,並可能使您受到處罰,其中包括您的應用已從App Store中刪除。在回答問題之前,請仔細閱讀常見問題解答。

您可以選擇是對於問題2,如果您的應用程序的加密是: (一)僅限於使用操作系統中的加密(iOS或MacOS的) (B)有限公司通過HTTPS撥打電話(f)專門設計用於醫療最終用途 (d)限於知識產權和版權保護 (e)僅限於認證,數字簽名或數據或文件的解密 (f)專門爲銀行設計和限制使用或「金錢交易」;或 (g)限於「固定」數據壓縮或編碼技術 如果您的應用程序符合美國出口管理條例第5部分第2部分中註釋4中提供的描述,您也可以選擇是。

我在這裏,我回答,一切都很簡單,我只需要在info.plist文件中插入<key>ITSAppUsesNonExemptEncryption</key><false/>

我可以回答YES這個問題嗎?

如果NO,我得到的3D問題:

3)請問您的應用程序實現任何加密算法是專有或尚未要被接受爲國際標準組織(IEEE,IETF標準,國際電聯等)?

據我瞭解,答案是NO

4)請問您的應用程序實現任何標準的加密算法,而不是,或除了,使用或訪問蘋果的iOS或MacOS的加密?

據我瞭解,答案是 在這種情況下,我需要:

請上傳一封短信說明你瞭解你的法律義務提交年終自我分類報告由工業和安全局(BIS)要求。

哪裏需要提交此工業安全局要求的年終自行分類報告?或者可以回答第二個問題YES

+0

您可以對問題2回答「是」。 –

回答

1

關鍵是「即使您的應用只使用可在iOS或MacOS中使用的加密」,選擇是。「

由於SHA256不加密,不回答問題1

加密哈希函數加密不,因爲是單向功能,加密是可逆的雙向功能。

+0

問題1沒有詢問有關加密的問題,它詢問了有關加密的問題。 –

+0

@JamesKPolk是什麼讓你認爲哈希函數是密碼學?他們不是。 – zaph

+0

他們是加密散列函數,但我明白你的觀點。我認爲他可以對問題1正確回答「否」。 –