· 4 years ago · Aug 18, 2021, 03:44 PM
1import org.apache.spark.sql.functions.udf
2import javax.crypto.Cipher
3import javax.crypto.spec.SecretKeySpec
4
5object Encryption {
6 val secretKey = "jcjbcjbcbubc765576551654bhjhygug"
7 val encrypt = udf((columnToEncrypt: String) => {
8 val key = new SecretKeySpec(secretKey.getBytes(), "AES")
9 val ecypher: Cipher = Cipher.getInstance("AES")
10 ecypher.init(Cipher.ENCRYPT_MODE, key)
11 val utf8 = columnToEncrypt.getBytes("UTF8")
12 val encrypted = ecypher.doFinal(utf8)
13 encrypted
14 })
15
16 val decrypt = udf((columnToDecrypt: String) => {
17 val key = new SecretKeySpec(secretKey.getBytes(), "AES")
18 val decypher: Cipher = Cipher.getInstance("AES")
19 decypher.init(Cipher.DECRYPT_MODE, key)
20 val decrypted = new String(decypher.doFinal(columnToDecrypt.getBytes()))
21 decrypted
22 })
23}
24