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 >> ;//够4个字节的按整形异或
  6. for (int i = ; i < num ; i++)
  7. {
  8. buf[i] ^= g_PWD;
  9. }
  10.  
  11. //不够4个字节的按位异或
  12. int tailnum = len & 0x3;
  13. if (tailnum > )
  14. {
  15. char *Byte = (char*)(buf + num);
  16. char *key = (char*)&g_PWD;
  17.  
  18. for (int k = ; k < tailnum ; k++)
  19. {
  20. Byte[k] ^= key[k];
  21. }
  22. }
  23. }

  CBrother异或加密代码

  

  1. var g_PWD = 0xffee00aa; //全局密钥
  2. function XORCode(byteArray,len)
  3. {
  4. var num = len >> 2;
  5. var ilen = num * 4;
  6. for (var i = 0 ; i < ilen ; i += 4) //够4个字节的
  7. {
  8. var b = byteArray.getByte(i) ^ (g_PWD & 255);
  9. var b1 = byteArray.getByte(i + 1) ^ (g_PWD >> 8 & 255);
  10. var b2 = byteArray.getByte(i + 2) ^ (g_PWD >> 16 & 255);
  11. var b3 = byteArray.getByte(i + 3) ^ (g_PWD >> 24 & 255);
  12.  
  13. byteArray.setByte(i,b);
  14. byteArray.setByte(i + 1,b1);
  15. byteArray.setByte(i + 2,b2);
  16. byteArray.setByte(i + 3,b3);
  17. }
  18.  
  19. //下面处理不够四个字节的
  20. var dlen = len - ilen;
  21. if(dlen >= 1)
  22. {
  23. var b = byteArray.getByte(i) ^ (g_PWD & 255);
  24. print b;
  25. byteArray.setByte(i++,b);
  26. }
  27.  
  28. if(dlen >= 2)
  29. {
  30. var b = byteArray.getByte(i) ^ (g_PWD >> 8 & 255);
  31. print b;
  32. byteArray.setByte(i++,b);
  33. }
  34.  
  35. if(dlen >= 3)
  36. {
  37. var b = byteArray.getByte(i) ^ (g_PWD >> 16 & 255);
  38. byteArray.setByte(i++,b);
  39. }
  40. }

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

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

  1. 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地

    . 异数OS-织梦师-异数OS虚拟容器交换机(七) 走进4Tbps网络应用时代,加速5G应用真正落地 本文来自异数OS社区 github: https://github.com/yds086/Here ...

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

    Android数据加密概述及多种加密方式 聊天记录及账户加密 提供高质量的数据保护 数据加密又称password学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文.而解密则是通过解密 ...

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

    看完过后,你会学到: 1学习IOS开发中的分类实现, 2以及类方法的书写, 3以及字符串的MD5加密/解密. ---------------------------wolfhous---------- ...

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

    16位的MD5加密和32位MD5加密的区别 MD5加密后所得到的通常是32位的编码,而在不少地方会用到16位的编码它们有什么区别呢?16位加密就是从32位MD5散列中把中间16位提取出来!其实破解16 ...

  5. 加密解密知识 php非对称加密

    function test1(){ $config = array( "digest_alg" => "sha1", "private_key_ ...

  6. java实现DES加密与解密,md5加密

    很多时候要对秘要进行持久化加密,此时的加密采用md5.采用对称加密的时候就采用DES方法了 import java.io.IOException; import java.security.Messa ...

  7. DotNet加密方式解析--散列加密

    没时间扯淡类,赶紧上车吧. 在现代社会中,信息安全对于每一个人都是至关重要的,例如我们的银行账户安全.支付宝和微信账户安全.以及邮箱等等,说到信息安全,那就必须得提到加密技术,至于加密的一些相关概念, ...

  8. DES加密深度优化——随机生成加密字符串

    DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法.但该算法一旦密钥固定,加密的字符串也就随之固定,这不利于数据存储安全.而且用该方法加密后有一个 ...

  9. php中des加密解密 匹配C#des加密解密 对称加密

    原文:php中des加密解密 匹配C#des加密解密 对称加密 网上找来的 php des加密解密 完全匹配上一篇C# 字符串加密解密函数  可以用于C#和php通信 对数据进行加密,其中$key 是 ...

随机推荐

  1. EJB系列 - EJB基础知识

    本人博客文章网址:https://www.peretang.com/basic-knowledge-of-ejb/ 什么是EJB 可移植的, 可重用的, 可伸缩的业务应用程序的平台 为什么选择EJB ...

  2. 从MySQL向Greenplum集群中导入数据

    我们要从MySQL当中导出数据到Greenplum当中,按照以下步骤就可以 1:将MySQL当中的表导出外部文件 以schema_name.table_name为例 select product_id ...

  3. vs2017 调试时出现 cannot connect to runtime process错误

    用Visual Studio 2017 .net core进行开发时 ,调试运行项目时出现如下错误 解决方案,调试>选项,取消勾选,关闭对JavaScript的调试

  4. Oracle 补丁那些事儿(PS、PSU、CPU、SPU、BP、DBBP…)

    当前ORACLE数据库提供两种方式的补丁一种是主动的Proactive Patches和另一种被动的Reactive Patches,其中Reactive Patches是指过去的ONE-OFF Pa ...

  5. android 常用adb 及linux 命令

    一.ADB相关 adb shell:进入连接的USB调试模式设备shell命令行下 adb tcpip 5555:将USB连接的调试及的连接方式改为网络远程模式进行调试 这里端口为5555(adb 默 ...

  6. LocationCoder 地图经纬度解析

    LocationCoder 地图经纬度解析 其实,在地图里面将地图解析成有意义的地址,或者把地址转换成有意义的经纬度都是很容易的事情,只是我将其封装了支持KVO,通知中心,block取结果,代理取结果 ...

  7. 使用CoreData [1]

    使用CoreData [1] 本篇教程能教你从无开始接触CoreData,包括新建工程,创建出实体,增删改查样样都有,属于使用CoreData最初级教程. 1. 创建带有CoreData的工程项目 2 ...

  8. HelloAndroid

    Hello Android 代码 button.setOnClickListener { val alertDialog = AlertDialog.Builder(this) alertDialog ...

  9. [EffectiveC++]item27:尽量少做转型动作

  10. ui-sref

    angularjs中路由跳转可以在模板页面上使用ui-sref="a-state({param1: value})"; 如果想为当前state的导航按钮添加一个激活class,可以 ...