String+Extension.swift 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. //
  2. // StringExtension.swift
  3. // CryptoSwift
  4. //
  5. // Created by Marcin Krzyzanowski on 15/08/14.
  6. // Copyright (c) 2014 Marcin Krzyzanowski. All rights reserved.
  7. //
  8. /** String extension */
  9. extension String {
  10. public func md5() -> String? {
  11. return self.utf8.lazy.map({ $0 as UInt8 }).md5()?.toHexString()
  12. }
  13. public func sha1() -> String? {
  14. return self.utf8.lazy.map({ $0 as UInt8 }).sha1()?.toHexString()
  15. }
  16. public func sha224() -> String? {
  17. return self.utf8.lazy.map({ $0 as UInt8 }).sha224()?.toHexString()
  18. }
  19. public func sha256() -> String? {
  20. return self.utf8.lazy.map({ $0 as UInt8 }).sha256()?.toHexString()
  21. }
  22. public func sha384() -> String? {
  23. return self.utf8.lazy.map({ $0 as UInt8 }).sha384()?.toHexString()
  24. }
  25. public func sha512() -> String? {
  26. return self.utf8.lazy.map({ $0 as UInt8 }).sha512()?.toHexString()
  27. }
  28. public func crc32() -> String? {
  29. return self.utf8.lazy.map({ $0 as UInt8 }).crc32()?.toHexString()
  30. }
  31. public func crc16() -> String? {
  32. return self.utf8.lazy.map({ $0 as UInt8 }).crc16()?.toHexString()
  33. }
  34. public func encrypt(cipher: Cipher) throws -> String? {
  35. return try self.utf8.lazy.map({ $0 as UInt8 }).encrypt(cipher)?.toHexString()
  36. }
  37. public func decrypt(cipher: Cipher) throws -> String? {
  38. return try self.utf8.lazy.map({ $0 as UInt8 }).decrypt(cipher)?.toHexString()
  39. }
  40. public func authenticate(authenticator: Authenticator) -> String? {
  41. return self.utf8.lazy.map({ $0 as UInt8 }).authenticate(authenticator)?.toHexString()
  42. }
  43. }