package fming;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
public class XOR {
public static String encode(String str, String key) {
String result = null;
byte[] strBuf = str.getBytes();
byte[] keyBuf = key.getBytes();
int c = 0;
int z = keyBuf.length;
ByteArrayOutputStream baos = new ByteArrayOutputStream(strBuf.length);
for (int i = 0; i < strBuf.length; i++) {
byte bS = strBuf[i];
byte bK = keyBuf[c];
byte bO = (byte) (bS ^ bK);
if (c < z - 1) {
c++;
} else {
c = 0;
}
baos.write(bO);
}
try {
baos.flush();
result = baos.toString();
baos.close();
baos = null;
} catch (IOException io) {
io.getStackTrace();
}
return result;
}
public static void main(String[] args) {
String result = XOR.encode("中俄的撒打算ffff发个我a", "fds");
System.out.println(result);
String s = XOR.encode(result, "fds");
System.out.println(s);
}
}
分享到:
相关推荐
异或加密算法的核心是异或(XOR)运算,其特性是“相同为0,不同为1”,即任何数字与0进行异或运算结果不变,相同数字异或结果为0,不同数字异或结果为它们的原值相加的模2。 在上述代码示例中,提供了一个简单的...
异或加密简单易懂,且效率较高,常用于临时的安全需求或者作为更复杂加密算法的基础。 异或(XOR)运算在计算机科学中是一种基本的逻辑运算,它的规则是:相同为0,不同为1。当两个二进制位进行异或操作时,如果它们...
在提供的Java代码中,实现了一个基于异或(XOR)操作的可逆加密算法。异或操作是一种二进制运算,其规则是两个相同位的值相异或结果为0,两个不同位的值相异或结果为1。这种简单但有效的加密机制在需要快速加密和解密...
在Java环境下实现基于IDEA(国际数据加密算法)的加密技术是提高数据安全性的有效方法。IDEA是一种迭代的分组密码算法,以其强大的安全性和高效性而闻名。该算法使用128位的密钥,通过8个循环对64位的数据块进行加密,...
在Java中实现SDES加密算法,我们需要理解以下几个核心概念和步骤: 1. **密钥生成**: SDES使用一个8位的密钥,这与DES的56位密钥相比显著简化。密钥通常由用户自定义或通过某种规则生成。在Java中,我们可以使用`...
IDEA(International Data Encryption Algorithm,国际数据加密算法)是一种对称密钥加密算法,由瑞士联邦理工学院的Lai Xuejia和Martin Hellman在1990年提出。它设计初衷是作为DES(Data Encryption Standard)的一...
TEA(Tiny Encryption Algorithm)是一种简单的块加密算法,由David Wheeler和Ross Anderson在1994年提出。它以其小巧、高效和易于实现的特点而受到关注。本例中,我们探讨的是如何用C++实现TEA加密和解密算法。 ...
在提供的压缩包中,"TEA介绍及数据加密算法之程序代码.doc"可能包含关于TEA算法的详细解释,包括其工作原理、伪代码和可能的C/C++或Java等编程语言的实现。文档可能还会讨论如何在Windows环境下集成和测试这些代码,...
在C语言中实现3DES加密算法,可以确保在不同平台上的兼容性和一致性,尤其对于需要跨平台操作的应用场景,如将C语言代码移植到Android平台,通过JNI接口与Java代码交互,能够很好地解决加解密结果不一致的问题。...
### 字符串加密算法详解 #### 一、引言 在信息安全领域,字符串加密是...Java AES加密算法作为一种广泛使用的对称加密算法,不仅适用于保护数据的机密性和完整性,而且其实现相对简单,易于集成到各种应用程序中。
XOR加密的实现相当直观,两个位进行异或操作,如果相同则结果为0,不同则结果为1。尽管XOR可以快速实现,但它的安全性相对较低,容易受到频谱分析和模式识别的攻击。因此,XOR通常作为其他更复杂加密算法的组成部分...
在Java编程中,有一种常见的加密方法——异或加密(XOR Encryption)。本主题将深入探讨利用异或加密实现文件快速加密的技术细节,以及它在实际应用中的优缺点。 异或加密是一种简单而有效的加密算法,其基本原理是...
Java MD5加密算法在Discuz用户表密码字段中的应用 MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能将任意长度的数据转换为固定长度的输出,通常是一个128位的二进制数,常以32位的十六进制形式...
GUI(图形用户界面)是用户与程序交互的直观方式,对于文件加密解密软件来说,它可以提供友好的操作界面,让用户无需了解复杂的加密算法细节也能使用。GUI界面通常包括以下几个关键组件: 1. **选择文件**:用户...
IDEA是一种由8个相似圈(Round)和一个输出变换(Output Transformation)组成的迭代算法。IDEA的每个圈都由三种函数:模(216+1)乘法、模216加法和按位XOR组成。
总之,DES加密算法虽然在今天已经不再被视为最安全的选择,但它的基本原理和Java实现方式仍然是理解对称加密的重要基础。在Java中实现DES加密涉及对JCE库的理解和使用,以及对加密流程的正确实现。随着技术的发展,...
在提供的压缩包中,"myMisty.jar"可能是一个包含Misty1加密算法实现的Java应用程序,带有图形用户界面(GUI),允许用户输入明文并进行加密操作。然而,由于描述中提到“明钥不能自己设定”,这可能意味着程序预设了...
Blowfish加密算法是一种广泛应用的对称加密技术,由Bruce Schneier于1993年设计。它的名称来源于Schneier希望这个算法能够像海洋生物Blowfish一样强壮且难以破解。Blowfish的主要特点是它能处理变长密钥,通常在32到...
在Java编程环境中,将...总之,这个Java项目提供了一个基本的文件加密和数据库存储方案,通过简单的XOR加密实现了数据的安全存储。开发者可以根据自己的需求,结合更强大的加密算法和安全实践来进一步完善这个系统。