微信加锁的聊天信息怎么加锁

2026人阅读
一、软件描述
当今社会,信息技术的发展日新月异,各自领域对自己的科研成果保密也就成了一项重大的事情。基于远程信息交流并且保密的需求,本应用程序实现了加密聊天的功能,在发送端对用户输入的信息加密,网络传输密文信息,接收端接收密文信息并解密,获取交流信息。
软件由两个主要部分组成:客户端和服务器端。两个客户端之间不是直接连接的,而是通过服务器沟通,一个客户端可以同时和多个其它客户端通信,框图如下:
图1 聊天软件模型
服务器对客户端接收的信息处理并派发给接收信息的客户端,原则上说,如果包含多个客户端通信的情况,应该为每个客户端都分配一个固定的ID,作为客户端的唯一身份识别标志,客户端发送的信息应该包括目的客户端的ID,服务器只起中转的作用。由于条件限制(需要多个PC机上的模拟器或者多个手机测试),本应用程序仅实现同一PC上两个模拟器之间的信息传递,也就没有为每个客户分配ID。
&&&&&& 软件可应用于所需安全性较高的通信场合,如高密技术交流,国家机密文件传输等等。&
二、功能概述
1、欢迎界面
欢迎界面包括一些简单的用户引导应用,包括“好友聊天”、“关于”、“退出”以及“设置”(通过menu键打开)。通过“设置”,可以选择是否播放背景音乐的功能。
欢迎界面由布局文件(layout/login.xml)实现,其中包含textView控件和Button控件,由Button实现其他应用的转移。添加menu实现函数,点击“setting”执行MenuChoose类,该类派生于PreferenceActivity类,加载“xml/setting.xml”文件为布局文件实现,实现了以列表的形式展示用户需要选择需要的功能。
图2 欢迎界面
2、聊天界面
聊天窗口包括信息输入区和信息显示区。在默认情况下,信息内容都是明码发送的(不加密)。界面由“layout/main.xml”布局文件组成,添加menu实现函数,用户可以对内容加密或解密。
图3 聊天界面
3、加/解密界面
&&&&&& 加密/解密界面可以对用户输入的信息加密或者接收的信息解密,为了提高内容的安全性,只要满足加密规则,可以对内容实现多层加密,在接收端,就必须采用与加密相反的算法实现,并且加密的层次与加密方也必须相反,即加密的最后一层算法,应该是解密第一层要采取的反算法,其它层依次类推。
&&&&&& 加/解密界面由同一个类实现(CodeSetting类),该类以“layout/codesetting.xml”为布局文件。当该类的实例被调用时,判断用户选择的是那个menuItem,然后设置自身自身参数,作为是加密的类还是解密的类。
图4 加/解密界面
&&&&&& 加密设置时,某些加密需要满足一定的条件,如“手机编码”和“摩尔编码”,程序只演示加密过程,所以固定了最后两种加密方法,这样,加密时候,每一层得加密方法可以自由选择。
&&&&&& 对解密部分的设计,并没有考虑解密的规则,原因是对于密码的解释,方法应该越多越好。如果在密文传送的过程中不慎被截获,对于截获者来说,只能通过组合的方式解释密文,组合方式越多,也就更难破解。程序中,解密一共包含五层,每层包含五种解密方法,如果通过组合的方式破解,多达 种,其中只有一种解释正确,其它解释都给出错误的结果。
图5 解码选择
&&&&&& 加密/解密选择之后,通过back键返回就就保存了加/解密方式,之后无论是发送的内容或者接受的内容都会相应地加密或者解密。
4、加/解密算法方案
4.1、加密方案
(1)、倒序编码
编码规则:倒序编码即是将一个字符串倒转,编码之后字符串中第一个字符是原字符串的最后一个字符,其它位置的字符依次类推,如“hello”的倒序编码为“olleh”。
实现方式:为将前后字符交换即可。
(2)、键盘编码
编码规则:按照电脑英文键盘的格式进行编码,即1:Q、2:W、3:E&。。。,转换成字母替换,则为:a:Q、b:W、c:E&。。。,完整码表请查看电脑键盘;
实现方式:定义源字符串为按顺序的26个英文小写字母和大写字母,再定义索引字符串为键盘顺序的字符串,包含大小写。对输入的字符串,取出每一个字符,在原字符串中搜索出所在的位置,并将该字符以索引字符串中该位置的字符替换。
(3)、反字母表编码
编码规则:将26个英文字母(包括大小写)的每一个字母按字母表的顺序取反替代。如字符串&abcdefghijklmnopqrstuvwxyz”的反字母表编码为&zyxwvutsrqponmlkjihgfedcba”,大写字母同理。
实现方式:实现方式与键盘编码原理相同,这里的索引字符串用反字母表的字符代替。
(4)、手机编码
编码规则:传统的电话/手机,会复用’2’--‘9’的八个数字键盘,进行英文字母的输入。如数字’3’,可输入’d’’e’’f’三个字母。按数字’2’键两次,表示字母’e’,用编码3 2描述。完整码表请查看手机。程序中为了对大写字母也同样能编码,添加了多余的数字组合,添加的数字组合必须是唯一与字母对应的。
实现方式:将每个字母对应的编码组合成一个有序的字符串,作为索引字符串,然后和键盘编码原理类似,找到字符所在字母表中的顺序时,取出索引字符串相应位置的子字符串替换即可。
(5)、摩尔编码
编码规则:摩尔编码是针对数字而言的,0---9每个数字都有自己对应的编码规则如下:
&&&&&&&&&& 0:―&―&―&―&―&& 1:*&―&―&―&―&& 2:* *&―&―&―&& 3:* * *&―&―
&&&&&&&&&& 4:* * * *&―&&&&&&& 5:* * * * *&&&&&&&& 6:―&* * * *&&&&& 7:―&―&* * *
&&&&&&&&&& 8:―&―&―&* *&&&& 9:――――*
实现方式:实现方式与手机编码类似,这里以摩尔编码之后的特殊字符串组合成索引字符串,通过查找索引位置,然后取出子字符串代替原字符即可。也可采用case语句,对每个不同的数字,给出编码之后的字符串。
4.2、解密方案
&&&&&& 所有解密算法都是加密算法的反运算,难度不大,故不作细解。
5、通信方式及信息收发
&&&&&& 模拟器通过UDP数据报方式收发信息,所以发送数据时程序不会阻塞。但是监听端口的程序会阻塞,只要接收不到消息就会一直阻塞,为了实现通信的同步,设计中为接收信息的部分开通一个专门的进程,接收到的消息通过handler处理。
&&&&&& 每个模拟器发送的信息包括以下部分:自己用户名、要发送至的地址(以端口模拟)、附加信息(保留,备用)、加密消息。服务器接收到消息之后,首先对接收到的整条消息解析,分析出消息的目的地址(程序中仅两个地址),然后将消息转移至此地址。另一客户端接收到信息之后,同样解析出消息中的用户名,然后打印到屏幕显示。如果用户设置了解密方式,则在显示之前还要对消息解密。
6、程序修改
&&&&&& 如果想将程序用于不同PC的通信模拟,可以修改客户端ChatClient.java(程序中已经修改为ChatClient54.java)中TOEMULATOR变量为对方客户端的IP。在服务器端解析出该变量,作为服务器的目的地址,将信息中转至该IP即可实现通信(目的ip上必须运行模拟器)。
6、后续开发
&&&&&& 程序后续开发包括如下两个方面:
1、&&&&&&&&&&&&& 服务器对客户信息的管理,如密码修改、添加用户、查询用户,限制用户权限(可将用户分为VIP用户和普通用户)、删除用户等功能。
2、&&&&&&&&&&&&& 新用户必须注册才能使用该软件,客户端可以实现新用户注册、用户信息修改(包括密码,用户名修改)、好友查询、添加/删除好友。
3、&&&&&&&&&&&&& 两个客户端之间的文件传输,文件传输需通过服务器许可,然后采用点对点的传输模式,中间不经过服务器。
4、&&&&&&&&&&&&& 还可以实现其他一些如字体设置,图片发送等功能。上述所有传输内容,都可设置相应加密模式发送。
说明:本文档仅供学习使用,如果设计中存在技术问题,欢迎高手指点,不胜感激!转载需注明,谢谢合作!
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:22718次
排名:千里之外
原创:21篇
(1)(4)(2)(4)(7)(2)(1)(2)(4)(2)360怎么上锁微信聊天记录_百度知道
360怎么上锁微信聊天记录
我有更好的答案
按默认排序
这个是没办法上锁的,只有腾讯才有资格锁住。不然是不可以的啊
用微信锁可以,不止是保护微信聊天记录
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁怎么给微信聊天记录加密?
怎么给微信聊天记录加密?
算你问对人了,直接找高手就行了,我知道有个人是专业内部人士,可以帮你搞定。直接 Q404 747 186就OK了
的感言:谢谢
等待您来回答
I'M QQ领域专家}

我要回帖

更多关于 微信锁屏 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信