как зашифровать / расшифровать Secure QR - код в читаемый формат в Swift - PullRequest
1 голос
/ 02 июля 2019

Я успешно отсканировал и прочитал stringValue из QR. Но не смог преобразовать stringValue в читаемый формат. https://uidai.gov.in/images/resource/User_manulal_QR_Code_15032019.pdf Я пытался выполнить конвертацию, используя вышеуказанную процедуру, но не смог.

1) Я попытался библиотеку преобразовать в BigInt и преобразовать в двоичное значение

 let str = String(self.metadataStringValue, radix: 2)
        print(str)

2) Успешное преобразование большого целого в байтовый массив

 let byteArray = Array(BigUInt(str)!.serialize())
        print(byteArray)

3) Используется алгоритм декомпрессии Apple (zlib)

4) Считать значение байтового массива от индекса 0 до первого значения разделителя «255» и преобразовать значение этого байтового массива в строку с кодировкой «ISO-8859-1».

var firstDelimiter = ArraySlice<UInt8>()
    var firstDelimiterArray = [UInt8]()
    var delimiterIndex:Int = 0

for index in 0..<byteArray.count {

    if byteArray[index] == 255 {
        firstDelimiter = byteArray[delimiterIndex...index]
        delimiterIndex = index + 1

        firstDelimiterArray = firstDelimiter.map { $0 }

        let data2 = Data(bytes: firstDelimiterArray, count: firstDelimiterArray.count)
        print(data2 as NSData)
     }
}

5) Кодировка «ISO-8859-1» Не удалось преобразовать в формат readbale (я использовал .isolatin1)

...