Sep 20, 2018

Swift4 - php hash_hmac to iOS hash

While working on APIs this could be one problem when the docs only written in php. :(

While looking the solution I found CryptoSwift which could help and solve my problem. Please check CryptoSwift on how to install.

Hear's same php to iOS conversion code.
PHP hash_hmac:
$hash = hash_hmac( 'SHA512', "YOUR_STRING_DATA_TO_HASH_HERE", 'YOUR_SECRET_KEY' // SHARED KEY ); print ("HMAC:" . $hash);

XCODE hmac
let yourData: Array = Array("YOUR_STRING_DATA_TO_HASH_HERE".utf8)
do{
   let myhmac = try HMAC(key: "YOUR_SECRET_KEY", variant: .sha512)

    // great your found your hash
   let iosHash = try myhmac.authenticate(password).toHexString()
   print ("HMAC:", iosHash)
}catch let err as NSError{
    
}


PHP hash:
$hash = hash( 'SHA512', "YOUR_STRING_DATA_TO_HASH_HERE" ); print ("HMAC:" . $hash);

XCODE Hash
print ("Hash:", "YOUR_STRING_DATA_TO_HASH_HERE".sha512())


NOTED: Be sure you import the CryptoSwift in your swift code.

Thanks for passing by.

Aug 9, 2018

Xcode - Rendering HTML code to your UILabel View

Im have been search on the net but most I see was still on Objective-c Language. Here what I discovered solution.
let htmlText = "<ul><li><b>Heloo</b></li><li>World</li></ul><hr>
<ol><li>Im <b>Heloo</b></li><li>World</li></ol>"
if let htmlData = htmlText.data(using: String.Encoding.unicode) {
  do {

    let attributedText = try NSAttributedString(data: htmlData,
    options: [
NSAttributedString.DocumentReadingOptionKey.documentType: NSAttributedString.DocumentType.html
],
    documentAttributes: nil)

    //Setting htmltext to uilable
    detailLabel.attributedText = attributedText

  } catch let e as NSError {
    //setting plane text to uilable cause of err
    detailLabel.text = htmlText
    print("Couldn't translate \(htmlText): \(e.localizedDescription) ")
  }
}

Update:
* Some reported that it will affect the scroll ability of table view. I never tested yet since I didn't work on tableview for this purpose.