手动加密

时间:2011-12-12 01:34:12

标签: java encryption

我想将安全数据(字符串)从客户端发送到服务器。这就是我想我想做的事情:

  • 将字符串转换为字节数组
  • 通过以特定方式将它们排除在外来“扰乱”字节
  • 序列化类
  • 中的字节数组
  • 将Encrypted and Serialized类发送到服务器

然后服务器会:

  • 反序列化类
  • 获取字符串的字节
  • 按正确的顺序输入字节
  • 用字节
  • 创建一个字符串

这是手动加密数据的好方法吗?这样安全吗?是否值得花时间尝试制作手动加密器?

3 个答案:

答案 0 :(得分:4)

听起来你正试图推出自己的对称加密方案,使用固定密钥("特定方式"你正在加扰字节)双方都知道。仅仅使用具有已知密钥的内置加密方案并且具有显着的潜在缺点,这样做没有任何优势。只需要一个小的实现错误就可以创建恶意用户可以利用的开放。

除非你以加密为生,否则你不能做得比在那里已知,并在现场证明的更好(AES是一个好的开始)。如果安全对您很重要,请不要尝试。但是,如果你想尝试作为一种爱好,那就玩得开心。

答案 1 :(得分:2)

这是加密数据的方法吗?

如果您只是“扰乱”数据,请不要。如果它只是被扰乱,重建明文将是“微不足道的”。 (这意味着有人第一次想要阅读数据时,他们可能会这样做,但如果他们不太努力,他们就不会偶然发现它。)

另一方面,如果你在它上面运行一个“真正的”加密算法,那么加扰会给解密增加一个可以忽略的难度,但是你依靠简单的加扰就足以让某人慢下来谁刚刚破解了“真正的”加密,这似乎不太值得。

你可能会做得更好,坚持使用一个经过充分测试的加密机制,这个机制是由一个以非常大的素数为生的数学家设计的。 Java的加密框架可以让您轻松实现公钥/私钥系统或双盲密钥交换系统;例如,您可以使用HTTP-SSL进行数据交换,而无需进行太多设置。

答案 2 :(得分:0)

不,混蛋不是很好。对于一个简单的方案,您可以检查XOR运算符。