Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

683
Vistas
Obtener cadena md5 en Swift 5

En Swift 4 podríamos usar

 var md5: String? { guard let data = self.data(using: .utf8) else { return nil } let hash = data.withUnsafeBytes { (bytes: UnsafePointer<Data>) -> [UInt8] in var hash: [UInt8] = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) CC_MD5(bytes, CC_LONG(data.count), &hash) return hash } return hash.map { String(format: "%02x", $0) }.joined() }

Pero en Swift 5 withUnsafeBytes usa UnsafeRawBufferPointer en lugar de UnsafePointer . ¿Cómo cambiar la función md5?

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Versión Swift 5: use UnsafeRawBufferPointer como tipo de argumento de cierre y bytes.baseAddress para pasar la dirección a la función Common Crypto:

 import Foundation import CommonCrypto extension String { var md5: String { let data = Data(self.utf8) let hash = data.withUnsafeBytes { (bytes: UnsafeRawBufferPointer) -> [UInt8] in var hash = [UInt8](repeating: 0, count: Int(CC_MD5_DIGEST_LENGTH)) CC_MD5(bytes.baseAddress, CC_LONG(data.count), &hash) return hash } return hash.map { String(format: "%02x", $0) }.joined() } }

(Tenga en cuenta que la conversión de una cadena a datos UTF-8 no puede fallar, no es necesario devolver un opcional).

CC_MD5 ha quedado obsoleto con iOS 13. En su lugar, puede usar CC_SHA256.

over 4 years ago · Santiago Trujillo Denunciar

0

En iOS 13 y superior, hay un marco CryptoKit que es un envoltorio alrededor del marco CommonCrypto y alrededor de la función hash MD5.

 import CryptoKit let d = "Hello" let r = Insecure.MD5.hash(data: d.data(using: .utf8)!) print(r) /*Output: MD5 digest: 8b1a9953c4611296a827abf8c47804d7*/
over 4 years ago · Santiago Trujillo Denunciar

0

En iOS 13 y superior, hay un marco CryptoKit . Intenta usar esto:

 extension Data { var md5: String { Insecure.MD5 .hash(data: self) .map {String(format: "%02x", $0)} .joined() } }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda