CBrother异或加密与C++异或加密函数

CBrother脚本异或加密与C++异或加密函数

  异或对于数据加密来说是最简单的方式,在一般的安全性要求不是非常高的地方,异或加密是最好的选择。

  C++异或加密代码

  

 1 int g_PWD = 0xffee00aa;    //密码
 2 void XORBuf(char *data,int len)
 3 {
 4     int *buf = (int *)data;
 5     int num = len >> 2;//够4个字节的按整形异或
 6     for (int i = 0 ; i < num ; i++)
 7     {
 8         buf[i] ^= g_PWD;
 9     }
10
11         //不够4个字节的按位异或
12     int tailnum = len & 0x3;
13     if (tailnum > 0)
14     {
15         char *Byte = (char*)(buf + num);
16         char *key = (char*)&g_PWD;
17
18         for (int k = 0 ; k < tailnum ; k++)
19         {
20             Byte[k] ^= key[k];
21         }
22     }
23 }

  CBrother异或加密代码

  

var g_PWD = 0xffee00aa;    //全局密钥
function XORCode(byteArray,len)
{
    var num = len >> 2;
    var ilen = num * 4;
    for (var i = 0 ; i < ilen ; i += 4)    //够4个字节的
    {
        var b = byteArray.getByte(i) ^ (g_PWD & 255);
        var b1 = byteArray.getByte(i + 1) ^ (g_PWD >> 8 & 255);
        var b2 = byteArray.getByte(i + 2) ^ (g_PWD >> 16 & 255);
        var b3 = byteArray.getByte(i + 3) ^ (g_PWD >> 24 & 255);

        byteArray.setByte(i,b);
        byteArray.setByte(i + 1,b1);
        byteArray.setByte(i + 2,b2);
        byteArray.setByte(i + 3,b3);
    }

        //下面处理不够四个字节的
    var dlen = len - ilen;
    if(dlen >= 1)
    {
        var b = byteArray.getByte(i) ^ (g_PWD & 255);
        print b;
        byteArray.setByte(i++,b);
    }

    if(dlen >= 2)
    {
        var b = byteArray.getByte(i) ^ (g_PWD >> 8 & 255);
        print b;
        byteArray.setByte(i++,b);
    }

    if(dlen >= 3)
    {
        var b = byteArray.getByte(i) ^ (g_PWD >> 16 & 255);
        byteArray.setByte(i++,b);
    }
}

  对比一下还是很容易理解的

原文地址:https://www.cnblogs.com/aibiancheng123/p/10270549.html

时间: 2024-10-29 14:16:24

CBrother异或加密与C++异或加密函数的相关文章

Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护

Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法.它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用. 一.概述 数据加密是指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文.它产生的历史相当久远,它是起源于

PHP源码加密 phpc.sinaapp.com 源代码加密

PHP源码加密,发现一个在线加密PHP源代码的好工具.phpc.sinaapp.com  这里记录一下步骤,备忘一下 方法/步骤 1 加密前后的效果 加密后 2 输网址 http://phpc.sinaapp.com 点击 开始使用 3 从磁盘中选择需要加密的PHP代码 4 选择输入 限制的使用时间,可以被使用多少天 输入 需要限制的ip或域名 等

.net C# 给配置文件加密--不同服务器共用同一个加密配置

.net C#  给配置文件加密--不同服务器共用同一个加密配置 保护配置提供程序 cd C:\Windows\Microsoft.NET\Framework64\v4.0.30319     or  C:\Windows\Microsoft.NET\Framework\v4.0.30319 1创建一个可导出的rsa密钥容器,命名为Key aspnet_regiis -pc "EsdConnectionStringsKey" -exp 2在要加密的信息前面指定密钥容器,如: <c

IOS中把字符串加密/IOS中怎么样MD5加密/IOS中NSString分类的实现

看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous------------------ [1]新建工程,新建分类 [2]分类的命名方式以及类的选择 [3]书写NSString分类的类方法,以及实现类方法,以及MD5如何加密 [4]测试加密结果 [5]解密:直接百度MD5解密,随便点歌网站进去,输入解密KEY,在我这个Demo中, wolfhous正常加密44bf025

c#加密 可逆与不可逆MD5 加密

1.方法一 (不可逆加密) srxljl public string EncryptPassword(string PasswordString,string PasswordFormat )     {      string   encryptPassword = null;     if (PasswordFormat="SHA1"){           encryptPassword=FormsAuthortication.HashPasswordForStoringInCo

16位的MD5加密和32位MD5加密的区别

16位的MD5加密和32位MD5加密的区别 MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16位MD5散列要比破解32位MD5散列还慢因为他多了一个步骤,就是使用32位加密后再把中间16位提取出来, 然后再进行对比而破解32位的则不需要,加密后直接对比就可以了 admin 的加密代码:16位加密:7a57a5a743894a0e32位加密:21232f297a57a5a743894a0e4a

用RSA加密实现Web登录密码加密传输

用RSA加密实现Web登录密码加密传输 通常我们做一个Web应用程序的时候都需要登录,登录就要输入用户名和登录密码,并且,用户名和登录密码都是明文传输的,这样就有可能在中途被别人拦截,尤其是在网吧等场合. 这里顺带一个小插曲,我以前有家公司,办公室装修时候安排的网口相对较少,不太够用,于是我和另外一个同事使用了一个hub来共享一个网口,这就导致了很有趣的现象:任何他的网络包我都能抓得到,当然了,我的他也能抓得到.这是不是有很大的安全隐患了?我有可能在不经意间会泄漏自己的密码. 所以,很多安全要求

Java 自带的加密类MessageDigest类(加密MD5和SHA)

Java 自带的数据加密类MessageDigest(MD5或SHA加密) 说明: 在网站中,为了保护网站会员的用户名和密码等隐私信息,所以我们在用户注册时就直接进行MD5方式或其他方式进行加密,   即使是数据库管理员也不能查看该会员的密码等信息,在数据库中查看密码效果如:8e830882f03b2cb84d1a657f346dd41a效果. 因为MD5算法是不可逆的,所以被很多网站广泛使用, 普遍使用的三种加密方式 方式一:使用位运算符,将加密后的数据转换成16进制 方式二:使用格式化方式,

php中des加密解密&#160;匹配C#des加密解密&#160;对称加密

原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是加密密钥,$iv 是偏移量,默认偏移量和加密密匙是一样的, <?php class DES { var $key; var $iv; //偏移量 function DES( $key, $iv=0) { //key长度8例如:1234abcd $this->key = $key; if( $iv