All Downloads are FREE. Search and download functionalities are using the official Maven repository.

sd.util.TripleDES.scala Maven / Gradle / Ivy

The newest version!
/** @author giabao
  * created: 2013-11-01 21:27
  * (c) 2011-2013 sandinh.com
  */
package sd.util

import javax.crypto.Cipher, Cipher.{ENCRYPT_MODE, DECRYPT_MODE}
import org.apache.commons.codec.digest.DigestUtils.md5Hex
import javax.crypto.spec.SecretKeySpec
import org.apache.commons.codec.binary.Base64.{encodeBase64String, decodeBase64}

/** dependencies: commons-codec */
object TripleDES {
  private def getCipher(key: String, mode: Int) = {
    val cipher = Cipher.getInstance("TripleDES")
    val keyMd5 = md5Hex(key).substring(0, 24)
    cipher.init(mode, new SecretKeySpec(keyMd5.getBytes, "TripleDES"))
    cipher
  }

  def encrypt(key: String, data: String): String = encodeBase64String(
    getCipher(key, ENCRYPT_MODE).doFinal(data.getBytes)
  )

  def decrypt(key: String, data: String): String = new String(
    getCipher(key, DECRYPT_MODE).doFinal(decodeBase64(data))
  )
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy