java手机加密软件(java软件短信加密最好软件是哪个索爱t658,k750一类的软件哪最多)
本文目录
java软件短信加密最好软件是哪个索爱t658,k750一类的软件哪最多
加密短信 ProSMS v0.8ProSMS 中文名为加密短信,是一款对发送的短信加密的工具,如果你的手机丢失,没有人可以读取你的信息,除非你的密码保存在程序里。注意:发加密信息时接收方也要安装此程序,不然无法加密。1.新信息:设置密码,并用其他方式把密码告诉收信人例如:通过电子邮件,即时消息等。2.收件箱:收到的信息都存放在这里,你需要输入密码才能打开信息,发送信息也一样。3.发件箱:如果你启用该选项,发送的信息都保存在这里。4.联系人:如果你不想每次都要输入密码发送和阅读信息,你可以保存密码,下次打开时只需输入联系人姓名,软件将会自动识别联系信息不要求您输入密码。您也可以选择发送选项来发送新信息到选定的联系人。5.设置:要保存在发件箱中发送的信息标记选框“存储已发信息”要打开/关闭新信息震动,标记选框“震动”。
如何用java语言对即时通讯软件进行加密
一、Java软件加密基本思路对于应用软件的保护笔者从两个方面进行考虑,第一是阻止盗版使用软件,第二是阻止竞争对手对软件反编译,即阻止对软件的逆向工程。1、阻止盗版在软件运行时对自身存在的合法性进行判断,如果认为自身的存在和运行是被授权的、合法的,就运行;否则终止运行。这样即使软件可以被随意复制,只要盗版用户没有相应的授权信息就无法使用软件。2、阻止反编译对编译产生的Class文件加密处理,并在运行时进行解密,解密者无法对软件进行反编译。二、Java软件加密的总体流程为了保护用Java语言开发的软件,我们设计并实现了一个实用、高强度的加密算法。以下称需要保护的Java软件为“受保护程序”,称对“受保护程序”进行加密保护的软件为“加密程序”。对软件加密保护的流程如图1所示。三、加密算法分析设计1、用户信息提取器设计为了防止用户发布序列号而导致“一次发行,到处都是”的盗版问题,提取用户机器中硬件相关的、具有唯一性的信息——用户计算机的硬盘分区C的序列号,并要求用户将此信息与用户名一起返回,之后用“序列号生成器”根据用户返回信息生成一个唯一合法的软件注册序列号发回用户,用户即可使用此号码注册使用软件。这个信息提取器使用Winclows 32汇编以一个独立的小程序方式实现,程序代码如图2所示。2、序列号生成器与序列号合法性判断函数的设计序列号生成器与序列号合法性判断函数中运用RSA加密算法。在序列号生成器中是使用私钥将用户返回的信息(硬盘序列号,用户名)进行加密得到相应的注册序列号;在序列号合法性判断函数中使用私钥将用户输入的注册序列号解密,再与(硬盘序列号,用户名)进行比较,一致则调用程序装载器将程序其他部分解密装入内存,初始化删环境并运行程序主体;否则退出。RSA加密算法的实现需要使用大数运算库,我们使用MIRACL大数库来实现RSA计算,序列号生成器的主要代码如下:char szlnputString=”机器码和用户名组成的字符串”;char szSerial=;//用于存放生成的注册码bign,d,c,m; //MIRACL中的大数类型mip→IBASE=16; //以16进制模式n= mlrvar(0); //初始化大数d= mirvar(0);c= mirvar(0); //C存放输入的字符串大数m= mlrva(o);bytes to big( len, szlnputString,c);//将输入字符串转换成大数形式并存入变量c中cinstr(n,”以字符串形成表示的模数”);//初始化模数cinstr(d,”以字符串形成表示的公钥”)://初始化公钥powmod(c,d,n,m); //计算m=cdmod ncotstr(m,szSerial);//m的16进制字符串即为注册码序列号合法性检测函数的主要代码如下:char szlnputStringL]=”机器码和用户名组成的字符串”;char szSerial=”用户输入的序列号”bign,e,c,m; //MIRACL中的大数类型mip→IBASE=16; //以16进制模式cinstr(m,szSerial); //将序列号的16进制转成大数形式cinstr(n,”模数n的字符串形式”);//初始化模数ncinstr(e,”字符串形式的公钥”);//初始化公钥if compare(m,n)==-1) //m《n时才进行解密{powmod(m,e,n,c);//计算m=me mod nbig_to _bytes(0,c,szSerial,0); //转为字符串return lstrcmp( szlnputString,szSerial);}3、强耦合关系的设计如果在序列号合法性检测函数中简单地使用图3所示流程:解密者可以使用以下几种手段进行攻击:(1)修改“判断合法性子函数”的返回指令,让它永远返回正确值,这样可以使用任意的序列号,安装/使用软件。(2)修改判断后的跳转指令,使程序永远跳到正确的分支运行,效果和上一种一样。(3)在“判断合法性子函数”之前执行一条跳转指令,绕过判断,直接跳转到“正常执行”分支运行,这样可以不用输入序列号安装/使用软件。为阻止以上攻击手段,笔者在程序中增加了“序列号合法性检测函数”与程序其他部分“强耦合”(即增强其与程序其他部分的关联度,成为程序整体密不可分的一部分,一旦被修改程序将无法正常工作)的要求(见图1),并且设置一个“完整性检测函数”用于判断相关的代码是否被修改过。当然,基于同样的原因,“完整性检测函数”也必须与程序其他部分存在“强耦合”关系。强耦合关系通过以下方式建立:在程序其他部分的函数(例如函数A)中随机的访问需要强耦合的“序列号合法性检测函数”和“完整性检测函数”,在调用时随机的选择使用一个错误的序列号或是用户输入的序列号,并根据返回结果选择执行A中正常的功能代码还是错误退出的功能代码,流程如图4所示。经过这种改进,如果破解者通过修改代码的方式破解将因“完整性检测”失败导致程序退出;如果使用SMC等技术绕过“序列号合法性判断函数”而直接跳至序列号正确时的执行入口,在后续的运行中,将因为随机的耦合调用失败导致程序退出。破解者要破解软件将不得不跟踪所有进行了耦合调用的函数,这显然是一个艰巨的任务。4、完整性检测函数的设计我们使用CRC算法算出需进行完整性检测的文件的校验码,并用RSA加密算法的公钥(不同于序列号合法性检测中的公钥/私钥对)将其加密存放在特定的文件中,在检测时先用CRC算法重新生成需进行完整性检测的文件的校验码,并用私钥将保存的校验码解密,两者相比较,相等则正常运行;否则退出。5、程序加载器的设计与编译成机器码执行的程序不同,Java程序只能由Java虚拟机解释执行,因此程序加载器的工作包括:初始化Java虚拟机;在内存中解密当前要运行的class文件;使解密后的c:lass文件在虚拟机中运行,在需要时解密另一个class文件。图5是用于初始化JVM的代码:以上介绍了我们设计的针对Java软件的加密保护方法,其中综合运用了多种加密技术,抗破解强度高;使用纯软件保护技术,成本低。经笔者在Windows系列平台上进行测试,运行稳定,效果良好。在研宄开发过程中,我们还总结出加密保护软件的一些经验:1、对关键代码和数据要静态加密,再动态解密执行;要结合具体的工作平台使用反跟踪/调试技术;2、要充分利用系统的功能,如在Windows下使用DLL文件或驱动程序形式能得到最大的丰又限,可以充分利用系统具有的各种功能;3、如果可能应该将关键代码存放在不可禚复制的地方;4、序列号要与机器码等用户信息相关以阻止盐复布序列号;5、加密流程的合理性比加密算法本身的强度更重要。
我想给手机里的文件加密,谁有这样的软件呀支持JAVA格式的
给手机文件加密,您可以下载misuo试试。misuo不仅可以对相册或存储卡内的照片、视频、音频、文档等多种文件类型进行加密,也可以对您的手机隐私和私密文件进行保护。建议您可以下载试试。
更多文章:
mkdir test什么意思(Linux里面mkdir -p命令-p是什么意思)
2024年6月19日 20:04
sql server解压安装教程(解压完sql怎么安装sql server 2008)
2024年6月20日 07:33
tomcat的java环境怎么安装(如何配置Java EE Eclipse+Tomcat 开发环境)
2024年5月22日 17:28
html文字循环滚动代码(html怎样使滚动字幕无缝隙循环)
2024年6月29日 01:17
realme官网(打算买个realme手机,担心售后服务,它的售后服务怎么样)
2024年7月2日 20:24
behavioral(请问什么是 Behavioral Priming)
2024年7月24日 16:33
怎么查看jdk的安装目录(Linuxjdk路径如何进行查看)
2024年4月27日 09:45
discipline翻译(Discipline 这个英语单词如何翻译)
2024年7月15日 05:06
这电脑比这个电脑旧的英文翻译(英语翻译这台新电脑并不比那台旧的好)
2024年7月21日 02:58