XOR运算文件加密示例

前言:

        XOR加密是一种非常简单的加密技术属于对称加密(相同的密钥进行加密和解密),不提供机密性或完整性验证因此不适用于高度敏感的数据,容易受到各种攻击,包括已知明文攻击。在实际应用中,应该使用更强大和安全的加密算法,如AES或RSA。

作用:

通过xor计算,将文件加密成不可读文件,除非使用逆运算,否则无法修复。

对加密代码进行 xor 逆运算,即可得到正常可读文件,文件无任何损失。

fun mk_rar(assetsName: String, rarName: String) {
    val arr_b1: ByteArray
    val arr_b = ByteArray(0x1000)
    var v109: Int
    try {
        val inputStream0: InputStream = getAssets().open(assetsName)
        val byteArrayOutputStream = ByteArrayOutputStream()
        while (true) {
            v109 = inputStream0.read(arr_b)
            if (v109 <= 0) {
                break
            } else {
                byteArrayOutputStream.write(arr_b, 0, v109)
            }
        }
        arr_b1 = byteArrayOutputStream.toByteArray()
        val aar_size = arr_b1.size
        var v120 = 0
        while (v120 < aar_size) {
            arr_b1[v120] = arr_b1[v120] xor 33
            ++v120
        }
        v120 = 0
        while (v120 < aar_size / 2) {
            arr_b1[v120] = arr_b1[aar_size - 1 - v120] xor arr_b1[v120]
            ++v120
        }
        val file: File = File(getExternalFilesDir("rar"), rarName)
        val fileOutputStream = FileOutputStream(file)
        fileOutputStream.write(arr_b1)
        fileOutputStream.flush()
        fileOutputStream.close()
    } catch (e: Exception) {
    }
}

猜你喜欢

转载自blog.csdn.net/Steve_XiaoHai/article/details/135388564