Java实现异或加密

    /**
     * 异或加密
     *
     * @param strOld
     *            源字符串
     * @param strKey
     *            密钥
     * @return 加密后的字符串
     */
    public static String encrypt(String strOld, String strKey) {
        byte[] data = strOld.getBytes();
        byte[] keyData = strKey.getBytes();
        int keyIndex = 0;
        for (int i = 0; i < strOld.length(); i++) {
            data[ i] = ( byte) ( data[ i] ^ keyData[ keyIndex]);
            if (++ keyIndex == keyData. length) {
                keyIndex = 0;
            }
        }
        return new String(data);
    }
时间: 2024-10-31 18:38:26

Java实现异或加密的相关文章

java中异或加密

static String simple_xor(String base_data, String encrypt_key) throws UnsupportedEncodingException {        StringBuffer xor = new StringBuffer("");        int base_len = base_data.length();        int encrypt_len = encrypt_key.length();       

谈谈异或加密

0. 前言 本文包括如下几个内容: 异或算法 异或加密 两个整数交换问题 1. 异或算法 异或是数字逻辑中的基本概念,也是每种编程语言都支持的基本运算.基本原理就是,对于数字1和0有如下的运算公式: 1 ^ 1 = 0 0 ^ 0 = 0 1 ^ 0 = 1 0 ^ 1 = 1 很自然地,这个运算可以扩展到一长串码流上. 更常见的是字节一级或整数的异或运算,可以参考相应的编程语言的相关介绍. 2. 异或加密 异或加密是最简单的一种加密方法,简单来讲,假定有一串码流A,然后可以用key进行加密,把

关于 Des加密(Android与ios 与后台java服务器之间的加密解密)

关于 Des加密(Android与ios  与后台java服务器之间的加密解密) http://blog.sina.com.cn/s/blog_7c8dc2d50101id91.html (2013-04-17 11:47:23)   分类: iPhone开发 最近做了一个移动项目,是有服务器和客户端类型的项目,客户端是要登录才行的,登录的密码要用DES加密,服务器是用Java开发的,客户端要同时支持多平台(Android.iOS),在处理iOS的DES加密的时候遇到了一些问题,起初怎么调都调不

lua简单地异或加密文件

用lua简单地异或加密文件,注意解密的key是加密key的倒序: 1 require 'bit' 2 3 local encode = function(inpath, outpath, key) 4 local inf = assert(io.open(inpath, "rb")) 5 local outf = assert(io.open(outpath, "wb")) 6 7 if (type(key) ~= "string") or (s

java实现重要信息的加密解密(模拟信用卡号的保存)

package cn.felay.io; import java.io.Externalizable; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io

java 短连接+MD5加密短链接

java 短连接+MD5加密短链接 import java.security.MessageDigest; public class ShotUrlUtil { public static void main(String[] args) { System.out.println(shortUrl("http://www.baidu.com/")); } public static String shortUrl(String url) { String[] chars = new S

异或加密原理

加密原理 因为: 1. A xor B xor C = (A xor B) xor C = A xor (B xor C) 2. A xor B xor B = A 所以有: A xor B xor B = (C= A xor B) xor B = C xor B = A 公开加密后的值C,保留key B ,c xor B 得到原始数据A #PYTHON 2.7 #coding: utf-8 ''' xor operator lab ''' def xor_encode(original,key

字符串异或加密

/** *  字符串异或加密 * *  @param oldStr 被加密的字符串 *  @param x      字符偏移量 * *  @return 加密后的字符串 */ - (NSString *)getCharArrayUsingString:(NSString *)oldstr withCharOffset:(int)x { if (nil == oldstr || [@"" isEqualToString:oldstr]) { return @"";

JAVA WEB实现前端加密后台解密

最近在研究登陆密码的加密,下边上具体代码,只是给出核心代码,具体的代码视业务而定吧,给位有什么问题或者意见请留言. 加密方法用的是AES-128-CBC,BASE64用的是org.apache.commons.codec.binary.Base64 JS代码: var password = "1234567890,./"; var key = CryptoJS.enc.Utf8.parse("0102030405060708");//密钥,128位加密密钥为16位