导航:首页 > 文档加密 > 加密程序联系方式

加密程序联系方式

发布时间:2022-07-29 04:30:47

❶ C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:
加密程序代码:
#include<stdio.h>
main()
{
char c,filename[20];
FILE *fp1,*fp2;
printf("请输入待加密的文件名:\n");
scanf("%s",filename);
fp1=fopen(filename,"r");
fp2=fopen("miwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代码:
#include<stdio.h>
#include<string.h>
main()
{
char c,filename[20];
char yanzhengma[20];
FILE *fp1,*fp2;
printf("请输入待解密文件名:\n");
scanf("%s",filename);
printf("请输入验证码:\n");
scanf("%s",yanzhengma);
if(strcmp(yanzhengma,"shan")==0)
{
fp1=fopen(filename,"r");
fp2=fopen("yuanwen.txt","w");
do
{
c=fgetc(fp1);
if(c>=32&&c<=126)
{
c=126-c;
c=32+c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
else
{
printf("验证码错误!请重新输入:\n");
scanf("%s",filename);
}
}

❷ 手机不用第三方软件怎么加密应用程序

可参考vivo手机设置软件加密的方法:
1、iQOO (Monster) UI/Funtouch OS 3.0及以上系统:进入设置--指纹、面部与密码 /指纹与密码/安全--隐私与应用加密,设置隐私密码密保,设置“密码”“密保”完成后点击“应用加密”,打开软件后面对应的开关,即可加密;
2、Funtouch OS 3.0以下系统:进入i管家--软件管理--软件锁,设置图案密码或使用数字密码,设置完成后,点击右上角的“继续”,设置完成软件密码,即可设置软件锁的密保(即安全问题),然后点击右上角的“完成”,点击软件后面对应的锁状图标,即可加密。

❸ windows7 bitlocker 相关

Windows BitLocker驱动器加密是一种全新的安全功能,该功能通过加密Windows操作系统卷上存储的所有数据可以更好地保护计算机中的数据。
受信任的平台模块(TPM)是一个内置在计算机中的微芯片。它用于存储加密信息,如加密密钥。存储在TPM上的信息会更安全,避免受到外部软件攻击和物理盗窃。
BitLocker使用TPM帮助保护Windows操作系统和用户数据,并帮助确保计算机即使在无人参与、丢失或被盗的情况下也不会被篡改。
BitLocker还可以在没有TPM的情况下使用。若要在计算机上使用BitLocker而不使用TPM,则必须通过使用组策略更改BitLocker安装向导的默认行为,或通过使用脚本配置BitLocker。使用BitLocker而不使用TPM时,所需加密密钥存储在USB闪存驱动器中,必须提供该驱动器才能解锁存储在卷上的数据。
[编辑本段]工作原理
通过加密整个Windows操作系统卷保护数据。
如果计算机安装了兼容TPM,BitLocker将使用TPM锁定保护数据的加密密钥。因此,在TPM已验证计算机的状态之后,才能访问这些密钥。加密整个卷可以保护所有数据,包括操作系统本身、Windows注册表、临时文件以及休眠文件。因为解密数据所需的密钥保持由TPM锁定,因此攻击者无法通过只是取出硬盘并将其安装在另一台计算机上来读取数据。
在启动过程中,TPM将释放密钥,该密钥仅在将重要操作系统配置值的一个哈希值与一个先前所拍摄的快照进行比较之后解锁加密分区。这将验证Windows启动过程的完整性。如果TPM检测到Windows安装已被篡改,则不会释放密钥。
默认情况下,BitLocker安装向导配置为与TPM无缝使用。管理员可以使用组策略或脚本启用其他功能和选项。
为了增强安全性,可以将TPM与用户输入的PIN或存储在USB闪存驱动器上的启动密钥组合使用。
在不带有兼容TPM的计算机上,BitLocker可以提供加密,而不提供使用TPM锁定密钥的其他安全。在这种情况下,用户需要创建一个存储在USB闪存驱动器上的启动密钥。
[编辑本段]TPM
TPM是一个微芯片,设计用于提供基本安全性相关功能,主要涉及加密密钥。TPM通常安装在台式计算机或者便携式计算机的主板上,通过硬件总线与系统其余部分通信。
合并了TPM的计算机能够创建加密密钥并对其进行加密,以便只可以由TPM解密。此过程通常称作“覆盖”或“绑定”密钥,可以帮助避免泄露密钥。每个TPM有一个主覆盖密钥,称为“存储根密钥(SRK)”,它存储在TPM的内部。在TPM中创建的密钥的隐私部分从不暴露给其他组件、软件、进程或者人员。
合并了TPM的计算机还可以创建一个密钥,该密钥不仅被覆盖,而且还被连接到特定硬件或软件条件。这称为“密封”密钥。首次创建密封密钥时,TPM将记录配置值和文件哈希的快照。仅在这些当前系统值与快照中的值相匹配时才“解封”或释放密封密钥。BitLocker使用密封密钥检测对Windows操作系统完整性的攻击。
使用TPM,密钥对的隐私部分在操作系统控制的内存之外单独保存。因为TPM使用自身的内部固件和逻辑电路来处理指令,所以它不依赖于操作系统,也不会受外部软件漏洞的影响。
[编辑本段]BitLocker驱动器加密的机制
首先需要强调的是,并不是所有的Windows Vista版本都支持BitLocker驱动器加密,相应的功能只有Windows Vista 的Enterprise版和Ultimate版才能够实现。其目标即是让Windows Vista用户摆脱因 PC 硬件丢失、被盗或不当的淘汰处理而导致由数据失窃或泄漏构成的威胁,
BitLocker保护的 Windows Vista 计算机的日常使用对用户来说是完全透明的。在具体实现方面,BitLocker主要通过两个主要子功能,完整的驱动器加密和对早期引导组件的完整性检查,及二者的结合来增强数据保护。其中:
驱动器加密能够有效地防止未经授权的用户破坏 Windows Vista文件以及系统对已丢失或被盗计算机的防护,通过加密整个 Windows 卷来实现。利用 BitLocker,所有用户和系统文件都可加密,包括交换和休眠文件。
对早期引导组件进行完整性检查有助于确保只有在这些组件看起来未受干扰时才执行数据解密,还可确保加密的驱动器位于原始计算机中。通过 BitLocker,还可选择锁定正常的引导过程,直至用户提供 PIN(类似于 ATM 卡 PIN)或插入含有密钥资料的 USB 闪存驱动器为止。这些附加的安全措施可实现多因素验证,并确保在提供正确的 PIN 或 USB 闪存驱动器之前计算机不会从休眠状态中启动或恢复。
BitLocker 紧密集成于 Windows Vista 中,为企业提供了无缝、安全和易于管理的数据保护解决方案。例如,BitLocker 可选择利用企业现有的 Active Directory 域服务基础结构来远程委托恢复密钥。BitLocker 还具备一个与早期引导组件相集成的灾难恢复控制台,以供用于“实地”数据检索。
[编辑本段]工作过程
BitLocker主要有两种工作模式:TPM模式和U盘模式,为了实现更高程度的安全,我们还可以同时启用这两种模式。
要使用TPM模式,要求计算机中必须具备不低于1.2版TPM芯片,这种芯片是通过硬件提供的,一般只出现在对安全性要求较高的商用电脑或工作站上,家用电脑或普通的商用电脑通常不会提供。
要想知道电脑是否有TPM芯片,可以运行“devmgmt.msc”打开设备管理器,然后看看设备管理器中是否存在一个叫做“安全设备”的节点,该节点下是否有“受信任的平台模块”这类的设备,并确定其版本即可。
如果要使用U盘模式,则需要电脑上有USB接口,计算机的BIOS支持在开机的时候访问USB设备(能够流畅运行Windows Vista的计算机基本上都应该具备这样的功能),并且需要有一个专用的U盘(U盘只是用于保存密钥文件,容量不用太大,但是质量一定要好)。使用U盘模式后,用于解密系统盘的密钥文件会被保存在U盘上,每次重启动系统的时候必须在开机之前将U盘连接到计算机上。
受信任的平台模块是实现TPM模式BitLocker的前提条件。
对硬盘分区的要求
硬件满足上述要求后,还要确保硬盘分区的安排可以满足要求。通常情况下,我们可能习惯这样给硬盘分区:首先,在第一块硬盘上划分一个活动主分区,用于安装Windows,这个分区是系统盘;其次,对于剩下的空间继续划分更多主分区,或者创建一个扩展分区,然后在上面创建逻辑驱动器。简单来说,我们已经习惯于让第一块硬盘的第一个分区成为系统盘,并在上面安装Windows。
传统方式下的硬盘分区情况。
在一台安装Windows Vista的计算机上运行“diskmgmt.msc”后即可看到硬盘分区情况。
这里重点需要关注的是,硬盘上是否有超过一个的活动分区。如果该磁盘上有两个分区,对应的盘符分别是“C”和“D”,其中“C”就是第一块硬盘上的第一个分区,属于系统盘而且是活动的。但问题在于,如果除了系统盘外,硬盘上不存在其他活动分区,这种情况下是无法直接启用BitLocker的(无论是TPM模式还是U盘模式)。原因很简单,源于其工作原理,BitLocker功能实际上就是将操作系统或者机密数据所在的硬盘分区进行加密,在启动系统的时候,我们必须提供解密的密钥,来解密原本被加密的文件,这样才能启动操作系统或者读取机密文件。但这就有一个问题,用于解密的密钥可以保存在TPM芯片或者U盘中,但是解密程序应该放在哪里?难道就放在系统盘吗?可是系统盘已经被加密了,这就导致了一种很矛盾的状态:因为用于解密的程序被加密了,因此无法运行,导致无法解密文件。
所以如果要顺利使用BitLocker功能,硬盘上必须至少有两个活动分区,除了系统盘外,额外的活动分区必须保持未加密状态(且必须是NTFS文件系统),同时可用空间不能少于1.5GB。为了保证可靠性,这个专门的活动分区最好专用,不要在上面保存其他文件或者安装额外的操作系统。
遗憾的是,一般情况下,很少有人会在自己的硬盘上创建多个活动分区。那么我们又该怎样设置硬盘,以满足BitLocker的要求?如果是在安装Windows Vista之前看到了这段内容,并且打算安装好之后使用BitLocker功能,那么我们可以在安装的时候直接将分区准备好。
如果是在安装了Windows Vista,并且在打算使用BitLocker的时候才看到这段内容,而硬盘分区已经按照传统的方式划分好了,那么也不用担心。通过一些方法,我们可以在不破坏现有系统以及所有数据的前提下为BitLocker腾出一部分空间来创建另一个分区。
如果还没有安装Vista
如果正打算在一块新硬盘上安装Windows Vista企业版或旗舰版,那么就可以在安装的过程中创建出符合BitLocker要求的分区结构。具体的过程如下:
准备好Windows Vista安装光盘,并在计算机的BIOS设置中设定通过光盘引导计算机(具体的设置方法请参考计算机或主板的说明书);
打开电源,立刻将Windows Vista安装光盘放入计算机。如果设置无误,那么计算机会自动从光盘引导,稍等片刻,屏幕上就会出现一个绿色的滚动条,就像Windows Vista正常启动时候那样;
当看到“安装Windows”对话框之后,选择要安装的语言、时间和货币格式,以及键盘和输入方法,设置好之后单击“下一步”按钮;
单击窗口左下角的“修复安装”链接;
随后可以看到“系统恢复选项”对话框,因为这是一块新硬盘,因此不会列出任何内容,直接单击“下一步”按钮;
在接下来看到的“系统恢复选项”对话框中,单击“命令提示符”链接;
通过“命令提示符”创建符合要求的分区
当打开“命令提示行”窗口后,依次运行下面列出的命令(除了第一条和最后两条命令外,其他所有命令都需要在“diskpart>”提示符下运行,括号内的文字是对命令的解释,不用输入。):
Diskpart(启动diskpart.exe,这是一个命令行界面下的硬盘分区调整程序。)
Select Disk 0(将第一块硬盘选中,作为后续操作的目标盘。如果有多块硬盘,并且希望将Windows Vista安装到其他硬盘上,请更改数字“0”为目标硬盘的编号。如果想知道分别有哪些硬盘,各自的编号是什么,请首先运行“list disk”命令。)
Clean(清空所选硬盘上的分区表信息。注意:目标硬盘上如果有数据,将被全部清除。)
Create Partition Primary Size=1500(创建一个体积为1.5GB的主分区,这个分区用于日后保存引导文件。)
Assign Letter=S(将这个1.5GB分区的盘符设置为“S”,或者其他任何想要使用的字母,但不建议使用“C”,毕竟很多人都习惯于将Windows安装到C盘。)
Active(将这个1.5GB的分区设置为活动分区。)
Create Partition Primary(用所有剩余空间创建一个主分区,如果希望除了这个主分区外还创建其他分区,请使用“size=xxx”参数指定这个主分区的大小。)
Assign Letter=C(将这个分区的盘符设置为“C”,接下来会将Windows安装到这个分区,同时最终被BitLocker加密的也是这个分区。)
List Volume(查看已经分好的区,正常情况下可以看到划分好的分区界面。)
Exit(退出Diskpart程序。)
Format C: /Y /Q /FS:NTFS(用NTFS文件系统快速格式化C盘。)
Format S: /Y /Q /FS:NTFS(用NTFS文件系统快速格式化S盘。)
经过上述设置,我们可以重新启动计算机,并再次使用Windows Vista安装光盘引导系统,完成操作系统的安装工作。在安装过程中需要注意,系统必须安装到C盘,而不能安装到S盘。
在命令提示行下创建好的分区
如果已经安装了Vista
如果已经安装好了Windows Vista旗舰版或企业版,并在打算启用BitLocker的时候才发现系统被安装到磁盘0分区1上,也不用担心。只要分区0可用空间足够,我们完全可以将其中一部分空间拆借出来,创建一个新的磁盘0分区1。
虽然有很多第三方软件可以做到这一点,不过往往需要付费购买,而且因为在系统盘的前面添加了一个新的分区,导致盘符变化,可能会使得Windows无法正常启动,因此不建议使用这类第三方软件。
要想在保留现有数据的前提下给原本安装了Windows的“磁盘0分区1”前面新建一个分区,我们可以使用微软提供的一个免费软件:BitLocker和EFS增强,这个软件是作为Windows Vista Ultimate Extras提供的。顾名思义,该软件只能由正版Windows Vista旗舰版用户通过Windows Update获得。不过根据微软的说明,Windows Vista企业版用户可以联系微软获取该软件,联系方式是:http://support.microsoft.com/contactus/?ws=support。
安装了BitLocker和EFS增强工具后,请这样操作:
从“开始”菜单下的“所有程序” “附件” “系统工具” “BitLocker”路径下启动“BitLocker驱动器准备工具”,在授权协议页面上单击“我接受”,随后该软件将自动检查本机的配置情况。
阅读屏幕上显示的注意事项,按照提示照做后单击“继续”按钮。
随后程序会自动调整硬盘分区,整个过程分为三个步骤:缩小(压缩)现有的系统盘;利用压缩获得的可用空间创建一个用于保存引导文件的新分区;然后根据BitLocker的要求调整新分区的设置。
这个过程大概需要三分钟左右,完成后单击“完成”按钮,系统会自动重启动。这时准备工作已经全部完成。通过上述操作,在本机会出现一个盘符为“S”,可用空间为1.5GB的新分区,引导文件和启动过程中的临时文件会保存在这里。
另外,在使用BitLocker和EFS增强工具调整硬盘分区的时候,还必须保证之前的系统盘在减少1.5GB的可用空间后保留的可用空间不小于分区总容量的10%。
默认情况下,Vista中只能使用TPM模式的BitLocker,因此要使用U盘模式,我们必须配置组策略将其启用。好在支持BitLocker功能的Windows Vista版本都是具有组策略的。具体做法如下:
运行“gpedit.msc”打开组策略编辑器,从编辑器窗口左侧的控制台树形图中定位到“计算机配置” “管理模板” “Windows组件” “BitLocker驱动器加密”。
在右侧的控制台窗口中找到并双击打开“控制面板设置:启用高级启动选项”这个策略,选择“已启用”。
单击“确定”保存设置,这样我们已经在本机启用了U盘模式的BitLocker。
启用BitLocker
在安装SP1之后的Vista企业版和旗舰版中,我们可以使用三种模式的BitLocker:
●纯TPM模式,要求系统中具有TPM芯片,这样用于解密的密钥以及用于验证引导文件完整性的相关文件都会保存在TPM芯片中。
●纯U盘模式,要求系统符合上文中提到的和USB设备有关的条件,这样用于解密的密钥会被保存在U盘中。
●混合模式,可以使用TPM+U盘,TPM+PIN,以及TPM+U盘+PIN的形式进一步增强系统安全。
那么这些模式分别要怎样使用?让我们来看看。
纯U盘模式
因为目前具有TPM芯片的电脑还不是很多,因此我们首先介绍纯U盘模式的使用方法,毕竟这种方式才适合最多人使用。
打开控制面板,依次单击“安全” “BitLocker驱动器加密”,我们可以看到BitLocker加密驱动器的界面。
这里已经列出了当前安装电脑的所有本地硬盘分区,对于想要加密的分区,单击对应的“启用BitLocker”链接,随后可以看到设置启动首选项的界面,在这里我们需要选择BitLocker的工作方式。因为没有TPM芯片,因此只能选择最后一个选项,这样以后每次启动系统的时候都必须提供保存了密钥的U盘,不过系统启动后就不再需要了。因此在这里直接单击“每一次启动时要求启动USB密钥”选项。
选择要使用的BitLocker工作模式。
将准备好的U盘连接到计算机,等程序界面上显示了这个U盘后,单击将其选中,然后单击“保存”按钮,这样用于解密被BitLocker加密的分区所需的密钥就会被保存在所选的U盘上。
随后可以看到保存恢复密码的界面,在这里我们需要决定恢复密码的处理方式。需要注意,在平时的使用过程中,并不需要提供恢复密码,我们只要提供之前一步操作中指定的U盘即可,而恢复密码是在U盘不可用(例如,丢失或者损坏)时使用的,因此建议将其妥善处理。例如,如果本机安装了打印机,可以将恢复密码打印在纸上,并将这张纸保存在安全的地方。同时因为非常重要,建议同时保留恢复密码的多个副本,例如多次打印,然后将打印的密码分别保存在不同的安全位置,或者保存在另外的U盘上(最好不要将恢复密码和启动密码保存在同一个U盘上)。
保管好恢复密码后单击“下一步”按钮,随后程序会对我们的操作进行一个概述。同时为了进一步确认本机可以正常使用BitLocker功能,请保持选中“运行BitLocker系统检查”选项,这样程序会在进行加密之前先对系统中的各项设置进行检查。如果确认无误,请单击“继续”按钮(注意:在整个过程中,最先使用的U盘一定不能拔下来,如果需要将恢复密码保存在其他U盘上,请将第二块U盘连接到计算机的其他USB接口上)。
接下来需要重新启动系统,准备好之后单击“现在重启动”按钮。重启动完成,并成功登录后,桌面右下角会显示一个气泡图标,提示我们系统正在进行加密,单击这个气泡图标后可以看到显示加密进度的对话框。在这里我们可以暂停加密操作,并在稍后继续进行,但是无法停止或者撤销加密操作。
加密操作需要一定的时间,主要取决于系统盘的大小以及计算机的硬件速度。不过好在这个操作只需要进行一次。而且在日后的使用过程中,系统的运行速度并不会有太大的降低,因此可以放心使用。加密完成后单击“完成”按钮即可。经过上述操作,BitLocker功能已经被成功启用。但是还有几点问题需要注意:
●应用BitLocker加密后,当Windows Vista启动后,我们查看系统文件时将不会看到文件带有任何与“加密”有关的属性,这属于正常现象,因为BitLocker的加密是在系统底层,从文件系统上实现的,而在用户看来,启动了的系统里的系统文件并没有被加密。但如果换个角度来看,例如一台计算机上安装了两个系统,或者将装有系统的硬盘拆掉,连接到其他计算机上,在试图访问应用了BitLocker的系统所在的分区时,我们会收到拒绝访问的信息,而且拒绝的原因是目标分区没有被格式化。这都属于正常现象,而且也证明了BitLocker正在保护我们操作系统的安全(设想一下,连访问分区都无法实现,又如何进行脱机攻击?)。
●另外,保存了启动密钥的U盘,直接在Windows资源管理器下查看的时候,完全看不到其中保存的密钥文件。这也是为了安全。同时建议这个U盘只用于保存BitLocker的启动密钥,而不要用作其他用途。这主要是为了尽量避免U盘因为各种原因,例如病毒感染或者频繁写入损坏而造成系统无法访问。而且需要注意,密钥盘只是在启动系统的时候需要,只要系统启动完成,我们就可以将其拔出,并妥善保管起来。操作系统的正常运行过程中并不需要我们反复提供密钥盘。
●最后一点,在加密过程中,系统盘的可用磁盘空间将会急剧减少。这属于正常情况,因为这个过程中会产生大量临时文件。加密完成后这些文件会被自动删除,同时可用空间数量会恢复正常。在解密被加密的系统盘时也会遇到类似的情况。
在应用了U盘模式的BitLocker后,每次启动系统前都必须将保存了启动密钥的U盘连接到计算机,否则系统会提示需要BitLocker驱动器加密密钥。这就要求我们必须将保存了启动密钥的U盘连接到计算机后重启动,才能完成Windows的启动和加载过程。如果因为某些原因,例如保存了启动密钥的U盘损坏或者丢失,只要还保留有启用BitLocker时创建的恢复密码,那么可以在这个界面上按下回车键进行恢复。
[编辑本段]BitLocker的技术特色
BitLocker支持“受信平台模块(TPM : Trusted Platform Mole)”1.2及其后版本,可实现基于硬件的全盘加密,以增强数据保护,并确保运行 Windows Vista 的 PC 在系统脱机时不被浏览与修改;BitLocker 使用128或256位的AES加密算法。(甚至有传言BitLocker将使用1024位加密,是否属实有待考证);BitLocker可通过组策略设置;在系统中采用BitLocker驱动器加密对系统性能的影响很小,这是一个好消息;BitLocker密钥可存储在磁盘、USB盘,甚至可以打印出来。也可通过组策略自动生成并保存于Active Directory中;

❹ 怎样可以把微信的小程序加密

1、下载MD5源文件(JS);
2、在小程序模块中使用require引入外部模块;也可以在index.html中直接全局引入md5.js文件。
因为源md5.js中没有队模块因为输出,如果使用require需要export,所以在md5.js中需要加入以下代码:

mole.exports = {
hexMD5: hex_md5, //需要输出的加密算法,我这边只写了我需要得两种
b64Md5: b64_md5,
}

在js文件中使用require引入md5:

const md5 = require('../../assets/js/md5/md5.js');

使用:

let b64 = md5.b64Md5(code); //code需要加密的数据

下面是我的文件结构:

md5.js 代码如下;

/*
* A JavaScript implementation of the RSA Data Security, Inc. MD5 Message
* Digest Algorithm, as defined in RFC 1321.
* Version 2.1 Copyright (C) Paul Johnston 1999 - 2002.
* Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet
* Distributed under the BSD License
* See http://pajhome.org.uk/crypt/md5 for more info.
*/

/*
* Configurable variables. You may need to tweak these to be compatible with
* the server-side, but the defaults work in most cases.
*/
var hexcase =
0;
/* hex output format. 0 - lowercase; 1 - uppercase */
var b64pad =
"";
/* base-64 pad character. "=" for strict RFC compliance */
var chrsz =
8;
/* bits per input character. 8 - ASCII; 16 - Unicode */

/*
* These are the functions you'll usually want to call
* They take string arguments and return either hex or base-64 encoded strings
*/
function hex_md5(s){
return binl2hex(core_md5(str2binl(s), s.length * chrsz));}
function b64_md5(s){
return binl2b64(core_md5(str2binl(s), s.length * chrsz));}
function str_md5(s){
return binl2str(core_md5(str2binl(s), s.length * chrsz));}
function hex_hmac_md5(key, data) {
return binl2hex(core_hmac_md5(key, data)); }
function b64_hmac_md5(key, data) {
return binl2b64(core_hmac_md5(key, data)); }
function str_hmac_md5(key, data) {
return binl2str(core_hmac_md5(key, data)); }

/*
* Perform a simple self-test to see if the VM is working
*/
function md5_vm_test()
{
return hex_md5( "abc") ==
"";
}

/*
* Calculate the MD5 of an array of little-endian words, and a bit length
*/
function core_md5(x, len)
{
/* append padding */
x[len >>
5] |=
0x80 << ((len) %
32);
x[(((len +
64) >>>
9) <<
4) +
14] = len;

var a =
1732584193;
var b = - 271733879;
var c = - 1732584194;
var d =
271733878;

for( var i =
0; i < x.length; i +=
16)
{
var olda = a;
var oldb = b;
var oldc = c;
var oldd = d;

a = md5_ff(a, b, c, d, x[i+
0],
7 , - 680876936);
d = md5_ff(d, a, b, c, x[i+
1],
12, - 389564586);
c = md5_ff(c, d, a, b, x[i+
2],
17,
606105819);
b = md5_ff(b, c, d, a, x[i+
3],
22, - 1044525330);
a = md5_ff(a, b, c, d, x[i+
4],
7 , - 176418897);
d = md5_ff(d, a, b, c, x[i+
5],
12,
1200080426);
c = md5_ff(c, d, a, b, x[i+
6],
17, - 1473231341);
b = md5_ff(b, c, d, a, x[i+
7],
22, - 45705983);
a = md5_ff(a, b, c, d, x[i+
8],
7 ,
1770035416);
d = md5_ff(d, a, b, c, x[i+
9],
12, - 1958414417);
c = md5_ff(c, d, a, b, x[i+ 10],
17, - 42063);
b = md5_ff(b, c, d, a, x[i+ 11],
22, - 1990404162);
a = md5_ff(a, b, c, d, x[i+ 12],
7 ,
1804603682);
d = md5_ff(d, a, b, c, x[i+ 13],
12, - 40341101);
c = md5_ff(c, d, a, b, x[i+ 14],
17, - 1502002290);
b = md5_ff(b, c, d, a, x[i+ 15],
22,
1236535329);

a = md5_gg(a, b, c, d, x[i+
1],
5 , - 165796510);
d = md5_gg(d, a, b, c, x[i+
6],
9 , - 1069501632);
c = md5_gg(c, d, a, b, x[i+ 11],
14,
643717713);
b = md5_gg(b, c, d, a, x[i+
0],
20, - 373897302);
a = md5_gg(a, b, c, d, x[i+
5],
5 , - 701558691);
d = md5_gg(d, a, b, c, x[i+ 10],
9 ,
38016083);
c = md5_gg(c, d, a, b, x[i+ 15],
14, - 660478335);
b = md5_gg(b, c, d, a, x[i+
4],
20, - 405537848);
a = md5_gg(a, b, c, d, x[i+
9],
5 ,
568446438);
d = md5_gg(d, a, b, c, x[i+ 14],
9 , - 1019803690);
c = md5_gg(c, d, a, b, x[i+
3],
14, - 187363961);
b = md5_gg(b, c, d, a, x[i+
8],
20,
1163531501);
a = md5_gg(a, b, c, d, x[i+ 13],
5 , - 1444681467);
d = md5_gg(d, a, b, c, x[i+
2],
9 , - 51403784);
c = md5_gg(c, d, a, b, x[i+
7],
14,
1735328473);
b = md5_gg(b, c, d, a, x[i+ 12],
20, - 1926607734);

a = md5_hh(a, b, c, d, x[i+
5],
4 , - 378558);
d = md5_hh(d, a, b, c, x[i+
8],
11, - 2022574463);
c = md5_hh(c, d, a, b, x[i+ 11],
16,
1839030562);
b = md5_hh(b, c, d, a, x[i+ 14],
23, - 35309556);
a = md5_hh(a, b, c, d, x[i+
1],
4 , - 1530992060);
d = md5_hh(d, a, b, c, x[i+
4],
11,
1272893353);
c = md5_hh(c, d, a, b, x[i+
7],
16, - 155497632);
b = md5_hh(b, c, d, a, x[i+ 10],
23, - 1094730640);
a = md5_hh(a, b, c, d, x[i+ 13],
4 ,
681279174);
d = md5_hh(d, a, b, c, x[i+
0],
11, - 358537222);
c = md5_hh(c, d, a, b, x[i+
3],
16, - 722521979);
b = md5_hh(b, c, d, a, x[i+
6],
23,
76029189);
a = md5_hh(a, b, c, d, x[i+
9],
4 , - 640364487);
d = md5_hh(d, a, b, c, x[i+ 12],
11, - 421815835);
c = md5_hh(c, d, a, b, x[i+ 15],
16,
530742520);
b = md5_hh(b, c, d, a, x[i+
2],
23, - 995338651);

a = md5_ii(a, b, c, d, x[i+
0],
6 , - 198630844);
d = md5_ii(d, a, b, c, x[i+
7],
10,
1126891415);
c = md5_ii(c, d, a, b, x[i+ 14],
15, - 1416354905);
b = md5_ii(b, c, d, a, x[i+
5],
21, - 57434055);
a = md5_ii(a, b, c, d, x[i+ 12],
6 ,
1700485571);
d = md5_ii(d, a, b, c, x[i+
3],
10, - 1894986606);
c = md5_ii(c, d, a, b, x[i+ 10],
15, - 1051523);
b = md5_ii(b, c, d, a, x[i+
1],
21, - 2054922799);
a = md5_ii(a, b, c, d, x[i+
8],
6 ,
1873313359);
d = md5_ii(d, a, b, c, x[i+ 15],
10, - 30611744);
c = md5_ii(c, d, a, b, x[i+
6],
15, - 1560198380);
b = md5_ii(b, c, d, a, x[i+ 13],
21,
1309151649);
a = md5_ii(a, b, c, d, x[i+
4],
6 , - 145523070);
d = md5_ii(d, a, b, c, x[i+ 11],
10, - 1120210379);
c = md5_ii(c, d, a, b, x[i+
2],
15,
718787259);
b = md5_ii(b, c, d, a, x[i+
9],
21, - 343485551);

a = safe_add(a, olda);
b = safe_add(b, oldb);
c = safe_add(c, oldc);
d = safe_add(d, oldd);
}
return Array(a, b, c, d);

}

/*
* These functions implement the four basic operations the algorithm uses.
*/
function md5_cmn(q, a, b, x, s, t)
{
return safe_add(bit_rol(safe_add(safe_add(a, q), safe_add(x, t)), s),b);
}
function md5_ff(a, b, c, d, x, s, t)
{
return md5_cmn((b & c) | ((~b) & d), a, b, x, s, t);
}
function md5_gg(a, b, c, d, x, s, t)
{
return md5_cmn((b & d) | (c & (~d)), a, b, x, s, t);
}
function md5_hh(a, b, c, d, x, s, t)
{
return md5_cmn(b ^ c ^ d, a, b, x, s, t);
}
function md5_ii(a, b, c, d, x, s, t)
{
return md5_cmn(c ^ (b | (~d)), a, b, x, s, t);
}

/*
* Calculate the HMAC-MD5, of a key and some data
*/
function core_hmac_md5(key, data)
{
var bkey = str2binl(key);
if(bkey.length >
16) bkey = core_md5(bkey, key.length * chrsz);

var ipad = Array( 16), opad = Array( 16);
for( var i =
0; i <
16; i++)
{
ipad[i] = bkey[i] ^
0x36363636;
opad[i] = bkey[i] ^
0x5C5C5C5C;
}

var hash = core_md5(ipad.concat(str2binl(data)),
512 + data.length * chrsz);
return core_md5(opad.concat(hash),
512 +
128);
}

/*
* Add integers, wrapping at 2^32. This uses 16-bit operations internally
* to work around bugs in some JS interpreters.
*/
function safe_add(x, y)
{
var lsw = (x &
0xFFFF) + (y &
0xFFFF);
var msw = (x >>
16) + (y >>
16) + (lsw >>
16);
return (msw <<
16) | (lsw &
0xFFFF);
}

/*
* Bitwise rotate a 32-bit number to the left.
*/
function bit_rol(num, cnt)
{
return (num << cnt) | (num >>> ( 32 - cnt));
}

/*
* Convert a string to an array of little-endian words
* If chrsz is ASCII, characters >255 have their hi-byte silently ignored.
*/
function str2binl(str)
{
var bin = Array();
var mask = ( 1 << chrsz) -
1;
for( var i =
0; i < str.length * chrsz; i += chrsz)
bin[i>> 5] |= (str.charCodeAt(i / chrsz) & mask) << (i% 32);
return bin;
}

/*
* Convert an array of little-endian words to a string
*/
function binl2str(bin)
{
var str =
"";
var mask = ( 1 << chrsz) -
1;
for( var i =
0; i < bin.length *
32; i += chrsz)
str += String.fromCharCode((bin[i>> 5] >>> (i %
32)) & mask);
return str;
}

/*
* Convert an array of little-endian words to a hex string.
*/
function binl2hex(binarray)
{
var hex_tab = hexcase ?
"0123456789ABCDEF" :
"0123456789abcdef";
var str =
"";
for( var i =
0; i < binarray.length *
4; i++)
{
str += hex_tab.charAt((binarray[i>> 2] >> ((i% 4)* 8+ 4)) &
0xF) +
hex_tab.charAt((binarray[i>> 2] >> ((i% 4)* 8 )) &
0xF);
}
return str;
}

/*
* Convert an array of little-endian words to a base-64 string
*/
function binl2b64(binarray)
{
var tab =
"+/";
var str =
"";
for( var i =
0; i < binarray.length *
4; i +=
3)
{
var triplet = (((binarray[i >>
2] >>
8 * ( i % 4)) &
0xFF) <<
16)
| (((binarray[i+ 1 >>
2] >>
8 * ((i+ 1)% 4)) &
0xFF) <<
8 )
| ((binarray[i+ 2 >>
2] >>
8 * ((i+ 2)% 4)) &
0xFF);
for( var j =
0; j <
4; j++)
{
if(i *
8 + j *
6 > binarray.length *
32) str += b64pad;
else str += tab.charAt((triplet >>
6*( 3-j)) &
0x3F);
}
}
return str;
}

mole.exports = {
hexMD5: hex_md5,
b64Md5: b64_md5,
}

❺ 济宁加密软件都有哪些公司在做,有没有联系方式

确实有这么个公司,貌似华途是当今中国第一的加密软件,济宁的好像也有代理的。

❻ 我有个excel的文档加密了,你能否帮我破解一下,你方便的话留一下你的联系方式。方便联系

您用什么方法加密的,我建议您联系这个加密方法的客服试试。

给文档加密,我使用的是超级加密3000。

超级加密3000自带的有密码恢复功能,我建议您再加密文档的时候可以试试。

❼ 手机程序加密怎么设置

如果您使用的是华为手机,以华为P40手机为例:
一、启用应用锁
进入设置 > 安全 > 应用锁 > 开启,设置应用锁密码并选择加锁应用。
如果您已设置了人脸或指纹解锁,还可以根据弹框提示将应用锁关联人脸或指纹,通过刷脸或指纹进入应用。

提示:并非所有产品支持指纹功能,请以实际情况为准。
二、启用应用锁智能保护功能
给私密应用设置应用锁并关联人脸后,手机将自动启动应用锁智能保护功能。当感知到人脸发生变化时(如他人使用等场景),已退出的应用会自动上锁,再次打开需要重新验证机主身份才能进入。此功能光线良好时体验更佳。
请选择以下任一方式给应用锁关联人脸,以启用应用锁智能保护功能:
1、若已为手机设置了人脸解锁功能,可在开启应用锁的过程中,根据弹框提示关联人脸,应用锁智能保护功能将自动启用。
2、若未给手机设置人脸解锁功能,可进入设置 > 生物识别和密码 > 人脸识别 ,根据提示进入人脸识别界面。然后开启访问应用锁开关,关联人脸与应用锁。
三、更改应用锁密码或密保
进入应用锁设置界面,点击齿轮图标 > 密码类型,可重新选择锁屏密码或自定义密码来作为应用锁密码。
如果选择了自定义密码,可以继续修改自定义密码和自定义密码保护。
四、取消或关闭应用锁
进入 应用锁设置界面,请执行以下任一操作:
1、取消应用锁:在加锁应用列表中,关闭需要取消应用锁的应用尾部的开关。
2、关闭应用锁:点击齿轮图标> 关闭应用锁 > 重置。此操作会取消所有应用的应用锁,同时清除应用锁的所有数据。

❽ 电脑怎么加密应用程序

高强度文件夹加密大师天空软件站下载:htp://
www.skycn.com/soft/21155.html绝不是简单的隐藏文件夹!!!这款文件加密软件具有界面漂亮友好、简单易用、稳定无错、功能强大和兼容性好等特点。新增个性加密文件夹图标设置功能。经它加密的文件夹可以移动到其他电脑上使用。而且支持临时解密、浏览解密的功能,让您不用每次都重新加密和关闭窗口后自动加密,方便快捷!并且它不受系统影响,即使重装、Ghost还原、系统盘格式化,也依然可以照样使用。它支持三种加密方式:“本机加密”、“移动加密”和“隐藏加密”。
其中的“移动加密”是本软件原创的加密方式
,使用这种方式加密的文件夹可以随意的移动到任何电脑上,包括未安装本软件的电脑上使用的加密方式安全性极高,达到了文件夹加密安全性的顶峰!使用任何工具都无法解开!值得一提的是它的加密速度极快,上百
G
的数据仅需1秒钟完成。
没有大小限制。使用了高强度的加密算法,给文件夹加密码..

阅读全文

与加密程序联系方式相关的资料

热点内容
美国好的源码出售 浏览:323
苹果ipad文件夹怎么添加文字 浏览:481
腾讯云连接自己的服务器地址 浏览:216
硕士英语综合教程pdf 浏览:46
分段加密的安全性 浏览:507
咪咕直播为什么没有适配安卓系统 浏览:172
php模版大全 浏览:102
没车能解压吗 浏览:634
php开发oa系统源码 浏览:759
怎么安装苹果ios的app 浏览:581
app拉新如何机刷 浏览:480
zendeclipseforphp 浏览:480
同时有几个微信如何加密微信 浏览:86
大众20t压缩比 浏览:566
程序员要记住的500个单词 浏览:830
wq快捷方式在哪个文件夹 浏览:965
云南到河北源码 浏览:92
安卓手机怎么玩造梦3 浏览:60
多玩我的世界盒子怎么创造服务器地址 浏览:986
手机如何下载米家app 浏览:96