`
zhoujianghai
  • 浏览: 439738 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

搜狗的一道关于加密解密的在线测评题目

阅读更多

是一个信息编码的程序,阅读其encode部分,并补全其decode部分 
最后运行程序,会打印出的一句话。这句话就是我们要求的答案。

 

题目源码如下:

 

 

public class Test { 

	/**
	 * 加密过程
	 * @param in
	 * @param out
	 * @param password
	 */
    public static void encode(byte[] in, byte[] out, int password) { 
        int len = in.length; 

        int seed = password ^ 0x8c357ca5; 
        for (int i = 0; i < len; ++i) { 
        	/**
        	 *因为JVM中涉及byte、short、char类型的运算操作首先会把这些值转换成int类型,
        	 * 然后对int类型的值进行运算,所以需要把运算结果强制转换成byte类型
        	 */
            byte a = (byte) ((in[i] ^ seed) >>> 5);  //把异或后的值存放在a的低3位
            byte b = (byte) (((((int) in[i]) << 16) ^ seed) >>> (16 - 3)); //把异或后的值存放在b的高5位
            a &= 0x7; //0x7:0000 0111;将a中未存储有效数的位清零
            b &= 0xf8; //0xf8:1111 1000;将b中未存储有效数的位清零
            out[i] = (byte) (a | b); 
            seed = (seed * 3687989 ^ seed ^ in[i]); 
        } 
    } 
/**
 * 
 * @param in
 * @param out
 * @param password
 */
    public static void decode(byte[] in, byte[] out, int password) { 
        int len = in.length; 

        int seed = password ^ 0x8c357ca5; 
        for (int i = 0; i < len; ++i) { 
        	//补全代码....
        	
        } 
    } 

    public static void main(String[] args) throws Exception { 
        int password = 0xe87dd9d3; 
        //要输出的汉字符号对应的编码,一个汉字符号占用两个字节
        byte[] buf1 = { 29, -16, 96, 43, -85, 25, -96, 83, 13, 66, -109, 49, -111, 0, 60, -101, 99, -86, -38, 86, -35, 
                48, 23, 83, -102, 25, 73, -116, -101, -88, -5, 14, -14, -112, 87, -87, 2, 108, -58, 40, 56, 12, 108, 
                77, 83, 38, 20, -114}; 
        byte[] buf2 = new byte[buf1.length]; 
        decode(buf1, buf2, password); 
        System.out.println("结果:"+new String(buf2, "GBK")); 
    } 
} 
 

需要补全的代码如下:

 

 

byte a = (byte)(((in[i] & 0x7) << 5) ^ seed);//把值存放到a的高3位
        	byte b = (byte)(((((((int)in[i]) & 0xF8 ) << (16 - 3))) ^ seed) >>> 16); //把值存放到b的低5位
        	a &= 0xe0;  //0xe0:1110 0000;将a中未存储有效数的位清零
        	b &= 0x1f;  //0x1f:0001 1111;将b中未存储有效数的位清零
        	out[i] = (byte)(a | b);
        	seed = (seed * 3687989 ^ seed ^ out[i]); 
 

 

运行结果:

 

结果:搜狗输入法支持各种炫酷的皮肤,彰显个性的你!!!

 

分享到:
评论

相关推荐

    sougou-cell-dict-decoder-master_sougoush_Song#3_搜狗用户词库解密_sougou.

    例1:将搜狗细胞词库转换成 rime 词库 已知,rime 词库文件的格式为:中文词组\t以空格分割的拼音组\t词频。$ ./main.sh ~/Downloads/化学化工词汇大全【官方推荐】.scel | awk 'BEGIN{FS=&quot;\n&quot;;RS=&quot;&...

    url解码器 用于破解url,加密字符串

    url解码器 用于破解url,加密字符串

    搜狗校招JAVA类题目

    题目来源于搜狗公司的校园招聘笔试题目,对于理解和掌握Java中的字节操作、位运算以及编码解码原理具有一定的参考价值。 在给出的代码中,`encode()`方法用于对字节数组进行编码,而`decode()`方法则用于解码已编码...

    搜狗地图javascript API源代码解密版

    搜狗地图javascript API的源代码,2013年8月7日2.5.1版解密版,代码格式为可阅读格式;如发生版权问题,请联系博主,谢谢!

    搜狗输入法 词库 转换 txt 文本 深蓝词库转换1.1

    《搜狗输入法词库转换至TXT文本:深蓝词库转换1.1详解》 在中文输入法领域,搜狗输入法以其智能便捷的特点深受用户喜爱。然而,它的内部词库不仅对于日常输入有着重要作用,对于特定领域的词汇处理,如情感分析中的...

    搜狗词库解码python脚本

    总之,"搜狗词库解码python脚本"是一个关于利用Python编程解析二进制词库文件的实践,涵盖了文件操作、二进制数据处理、数据结构分析等多个技术点,对于深入理解自然语言处理的底层机制和提升数据处理能力非常有帮助...

    搜狗词库txt版

    这可以通过手动编辑或者使用搜狗输入法提供的在线词库更新功能实现。 ### 四、案例分析 以部分给出的示例:“JUa 20000”,如果这里的“JUa”代表“家”,那么当用户输入“JUa”时,搜狗输入法将优先显示“家”,...

    wps,excel电子表格md5批量加密工具宏工具下载

    标题中的“wps,excel电子表格md5批量加密工具宏工具下载”暗示了这是一个用于对WPS Office和Microsoft Excel电子表格进行MD5批量加密的工具,且该工具可能集成了宏,以自动化处理大量文件的加密过程。MD5是一种广泛...

    把搜狗词库导入到谷歌输入法里的小工具

    今天写了个搜狗词库转换到谷歌词库的小工具 因为我一直使用谷歌输入法,但是又喜欢搜狗丰富的细胞词库 为了两全其美,就写了这么个转换小工具,希望大家喜欢 步骤: 1、下载搜狗txt格式的词库文件 。到...

    搜狗TTS搜狗离线语音阅读tts

    二、需要注意,搜狗TTS只是一个语音引擎,不能直接朗读播放文字。还需配合使用,有朗读功能的小说软件,比如阅读app、搜书大师等。在小说软件的阅读界面,点击朗读,它才可以调用搜狗TTS读小说。该软件免费试用,白嫖...

    搜狗提交链接软件,批量搜狗提交链接软件

    这种软件的主要目的是帮助网站管理员或SEO优化人员快速有效地将新创建的网页或更新的页面URL提交给搜狗搜索引擎,以便加快网页被索引的速度,提高在线可见性。批量功能意味着可以一次处理大量链接,无需手动逐个输入...

    花渡 搜狗皮肤精装版——破解收费版

    花渡 搜狗皮肤精装版 搜集网上的收费版制成的压缩包,内有超过30个皮肤,都是破解收费版的。大家尽情享受吧。ps--支持花渡。

    搜狗词库(常用词汇)

    《搜狗词库:中文词汇的宝库》 在信息化时代,中文输入法的重要性不言而喻,其中搜狗拼音输入法凭借其丰富的词库、智能的联想功能,深受广大用户的喜爱。搜狗词库是搜狗拼音输入法的基础,它涵盖了日常交流、专业...

    搜狗输入法词库合集.rar

    《搜狗输入法词库合集》是一款专为搜狗输入法用户打造的资源集合,旨在丰富和优化用户的输入体验。这款压缩包包含了多种不同类型的词库,涵盖了日常交流、专业术语、网络热词等多个领域,是提升输入效率、个性化定制...

    搜狗拼音离线安装包.zip

    《搜狗拼音离线安装包:便捷输入法的离线解决方案》 搜狗拼音输入法,作为中国最受欢迎的汉字输入法之一,以其丰富的词库、智能的联想功能以及高效的输入体验,深受广大用户喜爱。而“搜狗拼音离线安装包.zip”便是...

    搜狗皮肤.打包下载

    本文将详细探讨"搜狗皮肤.打包下载"这一主题,包括搜狗皮肤的概念、功能、以及如何下载和应用这些皮肤。 首先,我们要理解什么是“搜狗皮肤”。搜狗输入法是一款广泛使用的中文输入法,它提供了丰富的个性化功能,...

    搜狗1.0.rar 搜狗浏览器

    【搜狗浏览器1.0详解】 搜狗浏览器是一款由中国互联网巨头搜狐公司开发的网页浏览软件,它基于WebKit和IE双内核,集成了多种实用功能,旨在为用户提供快速、安全的上网体验。"搜狗1.0.rar"是该软件的早期版本,此...

    搜狗泛站群程序源码PHP轻量级搜狗泛站群源码 完美SEO优化 婚配搜狗算法

    绝对是一款超强的霸屏搜狗泛站群方式源码。 那套源码在某站销售12000元: 该套站群源码是模仿聚合搜索,针对搜狗搜索的方式源码,安拆源码后修改关键词和您的域名即可利用! 利用入口代码跳转,丢弃以往JS跳转体例,...

    机器学习中搜狗实验室发布的搜狗新闻数据集

    机器学习中搜狗实验室发布的搜狗新闻数据集

    搜狗提交软件,批量搜狗提交软件

    标题中的“搜狗提交软件”指的是用于向搜狗搜索引擎批量提交网址或数据的工具,它可以帮助网站管理员或SEO优化人员快速有效地将网站内容更新告知搜狗,以促进搜索引擎的抓取和索引。批量功能意味着该软件可以处理...

Global site tag (gtag.js) - Google Analytics