传奇的通迅协议与base64算法

传奇的数据根本就没加密。
只要把#(数字)!去掉,中间的那些全部减0x3c,然后,四个字节一组,每个字节取低六位组成6*4=24位,然后分成3个字节,这个是很经典的base64的算法。不过小改了一些,主要是为了传输方便和解包方便,因为把255一个字节缩小到64一个字节,就可以使用其它编码作头和尾的标志。

最新的.net框架应该已经包含了这个算法了吧,直接使用相关函数就行,没必要自己再去编写了。原理你可以到网上查,BASE64编码的好处在于可以把例如汉字等任何文件编码,编码后的文件只包含26个字母和键盘上的标准符号,这样的好处是编码后的文件通用性很好,可以进行任何垮平台的处理。例如有的国外的系统并没有考虑到汉字,日文等字符的处理情况,那么一封电子邮件通过internet的传送就有可能被不支持这些文字的网络处理设备把信息弄丢或者搞乱,用B64编码后就肯定不会出现这样的问题,因此电子邮件普遍采用这种编码方式

时间: 2024-08-26 23:07:29

传奇的通迅协议与base64算法的相关文章

XproerIM-v1.3更新-企业即时通迅

版权所有 2009-2016 荆门泽优软件有限公司 官方网站:http://www.ncmem.com/ 产品首页:http://www.ncmem.com/apps/xproerim/index.asp 产品介绍:http://www.cnblogs.com/xproer/archive/2012/08/21/2648763.html 升级日志:http://www.cnblogs.com/xproer/archive/2012/08/21/2648751.html 源码下载:http://l

java单向加密算法小结(1)--Base64算法

java单向加密算法小结(1)--Base64算法 从这一篇起整理一下常见的加密算法以及在java中使用的demo,首先从最简单的开始. 简单了解 Base64严格来说并不是一种加密算法,而是一种编码/解码的实现方式. 我们都知道,数据在计算机网络之间是使用字节流的方式进行传递的,所有的信息都要最终转换为0101的二进制,这本身就涉及到编码,解码的应用. Base64,顾名思义,是使用了64个基本的字符来对任意数据进行编码的一种实现方式,那既然有Base64,是不是也有Base32,Base16

java Base64算法的使用

Base64是常见的网络加密算法,Base64编码可用于在HTTP环境下传递较长的标识信息.详见 Base64介绍 1 自定义的base64算法 Base64Encrypt.java public class Base64Encrypt { private static final String CODES = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; // base64解密 private

Base64算法

一. Base64算法概述 Base64算法最早应用于解决电子邮件传输的问题.早期,由于“历史问题”,电子邮件只允许ASCII码字符,如果邮件中包含非ASCII码字符,当它通过有“历史问题”的网关时,这个网关会对该字符的二进制位进行调整,即将其8位二进制码的最高位置0,这样用户收到的邮件就会是一封乱码.为了解决这个问题,产生了Base64算法. Base64主要用于将不可打印的字符转换成可打印字符,或者简单的说将二进制数据编码成ASCII字符(注:可打印的). 将二进制数据编码成ASCII字符主

MD5加密算法(信息摘要算法)、Base64算法

1 什么是MD5 信息摘要算法,可以将字符进行加密,每个加密对象在进行加密后都是等长的 应用场景:将用户密码经过MD5加密后再存储到数据库中,这样即使是超级管理员也没有能力知道用户的具体密码是多少:因为MD5加密后的数据时不能够被解密的 步骤: >获取MessageDigest对象 MessageDigest md5 = MessageDigest.getInstance("MD5"); 注意:import java.security.MessageDigest; >通过M

算法系列(十一)BASE64算法实现和使用说明

完整的BASE64定义可见RFC 1421和RFC 2045.编码后的数据比原始数据略长,为原来的4/3.在电子邮件中,根据RFC 822规定,每76个字符,还需要加上一个回车换行.可以估算编码后数据长度大约为原长的135.1%. 转换的时候,将三个byte的数据,先后放入一个24bit的缓冲区中,先来的byte占高位.数据不足3byte的话,于缓冲器中剩下的bit用0补足.然后,每次取出6(因为26=64)个bit,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefg

内部网关协议RIP 路由选择算法(距离向量)

RIP是一种基于距离向量的路由选择协议 RIP的距离就是指的跳数,没经过一个路由,就是一跳,RIP允许一跳路径最多经过15个路由器,所以16个的话就相当于不可以到达了 RIP协议的特点: 1:仅和相邻的路由进行交换信息, 2:交换的信息只是自己全部知道的信息 3:每隔30s更新一下 RIP协议主要使用的是距离向量算法 : 收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:把"下一跳"字段中的地址都改为 X,并把所有的"距离&qu

标准的Base64算法描述

作者:zhanhailiang 日期:2014-12-19 算法描述: Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3. 第一个字符通过右移2位获得第一个目标字符的Base64表位置,根据这个数值取到表上相应的字符,就是第一个目标字符. 然后将第一个字符与0x03(00000011)进行与(&)操作并左移4位,接着第二个字符右移4位与前者相或(|)

Base64算法与MD5加密原理

Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,大家可以查看RFC2045-RFC2049,上面有MIME的详细规范.Base64编码可用于在HTTP环境下传递较长的标识信息.例如,在Java Persistence系统Hibernate中,就采用了Base64来将一个较长的唯一标识符(一般为128-bit的UUID)编码为一个字符串,用作HTTP表单和HTTP GET URL中的参数.在其他应用程序中,也常常需要把二进制数据编码为适合放在URL(包括隐藏表单域)中的形式.此