用XOR进行字符串加解密

2024-07-28  本文已影响0人  Afra55

XOR运算可以随意更改为自己的算法。

package jiami

import kotlin.experimental.xor

object Main {
    @JvmStatic
    fun main(args: Array<String>) {
        val a = jiaMiStr("你好吗?")
        println(a)  // "羣榺◐8"
        val b = jieMiStr(a)
        println(b) // "你好吗?"
    }

    fun jiaMiStr(str: String): String {
        val aar: ByteArray
        try {
            aar = str.toByteArray(Charsets.UTF_8)
            val aar_size = aar.size
            var v = 0
            while (v < aar_size / 2) {
                aar[v] = aar[v] xor 4
                ++v
            }
            v = 0
            while (v < aar_size) {
                aar[v] = aar[v] xor 7
                ++v
            }

            return aar.toString(Charsets.UTF_8)
        } catch (e: Exception) {
        }
        return str
    }


    fun jieMiStr(str: String): String {

        val aar: ByteArray
        try {
            aar = str.toByteArray(Charsets.UTF_8)
            val aar_size = aar.size
            var v = 0
            while (v < aar_size) {
                aar[v] = aar[v] xor 7
                ++v
            }
            v = 0
            while (v < aar_size / 2) {
                aar[v] = aar[v] xor 4
                ++v
            }

            return aar.toString(Charsets.UTF_8)
        } catch (e: Exception) {
        }
        return str
    }
}
上一篇 下一篇

猜你喜欢

热点阅读