@@ -9,37 +9,7 @@ import Foundation
99
1010extension String {
1111
12- private static let CODES = [ UInt8] ( " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= " . utf8)
13-
14- public static func toBase64( _ data: [ UInt8 ] ) -> String ? {
15-
16- // Based on: https://en.wikipedia.org/wiki/Base64#Sample_Implementation_in_Java
17-
18- var result = [ UInt8] ( )
19- var tmp : UInt8
20- for index in stride ( from: 0 , to: data. count, by: 3 ) {
21- let byte = data [ index]
22- tmp = ( byte & 0xFC ) >> 2
23- result. append ( CODES [ Int ( tmp) ] )
24- tmp = ( byte & 0x03 ) << 4
25- if index + 1 < data. count {
26- tmp |= ( data [ index + 1 ] & 0xF0 ) >> 4
27- result. append ( CODES [ Int ( tmp) ] )
28- tmp = ( data [ index + 1 ] & 0x0F ) << 2
29- if index + 2 < data. count {
30- tmp |= ( data [ index + 2 ] & 0xC0 ) >> 6
31- result. append ( CODES [ Int ( tmp) ] )
32- tmp = data [ index + 2 ] & 0x3F
33- result. append ( CODES [ Int ( tmp) ] )
34- } else {
35- result. append ( CODES [ Int ( tmp) ] )
36- result. append ( contentsOf: [ UInt8] ( " = " . utf8) )
37- }
38- } else {
39- result. append ( CODES [ Int ( tmp) ] )
40- result. append ( contentsOf: [ UInt8] ( " == " . utf8) )
41- }
42- }
43- return String ( bytes: result, encoding: . utf8)
12+ public static func toBase64( _ data: [ UInt8 ] ) -> String {
13+ return Data ( data) . base64EncodedString ( )
4414 }
4515}
0 commit comments