马云 阿里双11不赚钱又提出阿里运动赢苹果手机怎么看?

crypt32 文件列表
465.77KX865.131.2173.1Crypto API32DFAC3CEEF8A578KX865.131. (xpsp.3)Crypto API3237B151C5364617BFEF0F3E6CD4B4F8EF573KX865.131. (srv03_sp2_rtm.0)Crypto API32C0BF1A9DBC73D23A73E4E1.10MX866.1. (win7_rtm.5)Crypto API32E6B5DE86ABF68D7D67E451C1.09MX866.1.7000.0 (winmain_win7beta.0)Crypto API32F83DAB2923AFEC2CFBD1EC31.39MX646.1. (win7_rtm.5)Crypto API3215B740D94BAD124D7EE2573.5KX865.131. (srv03_sp1_rtm.7)Crypto API32029D8438ECD7A52BF2BBDFE7F2AEC013578.5KX865.131. (xpsp_sp3_qfe.7)Crypto API32D373BBC32EBAB2FDEEC1B577.5KX865.131. (xpsp_sp2_qfe.3)Crypto API32EEC67E9C6BBA82987B4F578.5KX865.131. (xpsp_sp2_rtm.8)Crypto API321E69C49BB249C3CF6C9D95A954.5KX866.0. (longhorn_rtm.0)Crypto API32D4DFE0D713956KX866.0. (lh_sp2rtm.0)Crypto API32FD99A3AF1B8AC955KX866.0. (vistasp1_ldr.3)Crypto API32C8251ECEDBAB4578.5KX865.131. (xpsp_sp3_qfe.8)Crypto API32BAF0D33EDD9E059AFB592DB376KX865.131.1877.4Crypto API32AC9CC3DADC951.5KX866.0. (vista_gdr.0)Crypto API3246A5C54A312B1.10MX866.1. (win7_rtm.5)Crypto API3235C3F986BB3C63BC60C33BB5AADD25A21.10MX866.1. (win7sp1_rtm.0)Crypto API32454EEF1D72F43F42BBAF6917468.27KX865.131.Crypto API329ED27E8027AFA7D491DF7C2D4B2F7BD11.39MX646.1. (win7sp1_rtm.0)Crypto API323F9F2AFA135FDD5FFD897598KX865.131.3790.0 (srv03_rtm.8)Crypto API325E56E57BBB89B9967082DFEFF1811402573KX865.131. (srv03_sp2_gdr.0)Crypto API32A30840DEB7ED0F5AE7611A574KX865.131. (srv03_sp2_qfe.0)Crypto API32DE9F077790EBA466FED2C60C578KX865.131. (xpsp.4)Crypto API32E5B04FEE7B4951.5KX866.0. (vista_ldr.0)Crypto API326E4B8D43AABE3EC49AA925FD68F0C265951.5KX866.0. (vista_rtm.5)Crypto API32A3BAB7F5529E0544.5KX865.131. (xpsp1.0)Crypto API32EBB69F94CAEFDC1.39MX646.1. (win7_rtm.5)Crypto API32649E03B3B324C96DC9018BAF94C6EDC7578KX865.131. (xpsp_sp3_qfe.3)Crypto API322D3C87CD1DF4AEFFE9CB3878EBA2FCE61.20MX646.0. (longhorn_rtm.0)Crypto API3235F494C3AFC788FA8AA2D3F68A283459576.5KX865.131. (xpsp_sp2_rtm.8)Crypto API32874E00D25F582KX865.131. (srv03_sp1_rtm.7)Crypto API327AA5F0F5DC75F349D4A2452DE0DFC4F1136.83KX865.131.Wine CryptoAPI Library5C9F0C57EC00A1.35MX645.131. (srv03_sp2_rtm.0)Crypto API32EF33EAF5DC02B1DE75C67A272KX86BA349A8AEC8B1083247E578KX865.131. (xpsp_sp3_gdr.3)Crypto API32E721F9F98BD578KX865.131. (xpsp_sp3_gdr.0)Crypto API32DD697B82A93F578.5KX865.131. (xpsp_sp3_qfe.0)Crypto API3286DA1B5F9B7CE385E02D9B97E391B5F6578.5KX865.131. (xpsp_sp3_qfe.2)Crypto API3226BD86D76DC8DE6DA478BBD1.36MX645.131. (srv03_sp2_gdr.0)Crypto API32F2B6AEE2FF10FF32B63DF7DCA5DA0AD9581.5KX865.131. (srv03_sp2_gdr.0)Crypto API32D3FF42C3F817EC3A11E5A0A20DFF2A2C1.37MX645.131. (srv03_sp2_qfe.0)Crypto API3276F577D8C4FB2B8F1FEC65E4C627BF03575KX865.131. (srv03_sp2_qfe.0)Crypto API32DEFB66C5F63387CBC43FE0ADFBED1D2D575KX865.131. (srv03_sp2_qfe.7)Crypto API320D37C98BE9B641E3B2FD573KX865.131. (srv03_sp2_gdr.7)Crypto API32585CFED7CEF550.77KX865.131.Crypto API3249F8E15FC5D52BD6220F1EFF530.77KX865.131.Crypto API32D9DDDBC0CA8B91F900D985AB1.20MX646.0. (lh_sp2rtm.0)Crypto API3292399DADAC178B1.36MX645.131. (srv03_sp2_qfe.7)Crypto API32F153E5EBCCACA68A4FDF9ED1.35MX645.131. (srv03_sp2_gdr.7)Crypto API32662F2EAFB5A938AFA49DE01.75MX646.2.8102.0 (winmain_win8m3.5)Crypto API32FB781AF0F0C53578KX865.131. (xpsp_sp3_gdr.0)Crypto API32FABDDDC5D45585.5KX865.131. (xpsp_sp3_qfe.0)Crypto API3251DCF29D11DEA6AAA5C54575KX865.131. (srv03_sp2_qfe.4)Crypto API32C189E933AD5E44C7974A1.36MX645.131. (srv03_sp2_qfe.4)Crypto API32C92ECAAD88B7DA3681EF41.35MX645.131. (srv03_sp2_gdr.4)Crypto API32FE4A49B72C56DDEC9CA82B573KX865.131. (srv03_sp2_gdr.4)Crypto API328BA6B8CFEC95C72E93CB52F0D2E7DFA71.42MX866.2.8102.0 (winmain_win8m3.5)Crypto API325C4B9F8D7B266DA19B2CA570573.5KX865.131. (srv03_sp1_gdr.3)Crypto API32FFD5AE3F77B575KX865.131. (srv03_sp1_qfe.3)Crypto API3209927CF83CEF57F31DDC5DF1.10MX866.1.7057.0 (winmain.0)Crypto API32FF444C4A12A65F099E421.48MX866.2.8250.0 (winmain_win8beta.0)Crypto API32955AD7FA7DAE80AC3B35DC01.49MX866.2.8294.0 (winmain.4)Crypto API320D2D73A43B9A533ADDB2E1D23F1C90BD1.79MX646.2.8250.0 (winmain_win8beta.0)Crypto API325D949B0EAAB464.27KX865.131.Crypto API323A0CD4FF282F51D8FC8F0E1.36MX645.131. (srv03_sp1_rtm.7)Crypto API32E56B1B8FCD6CB8B7A09EEB577.5KX865.131. (xpsp_sp2_qfe.0)Crypto API328DBA0F493B4D17FC235AEA0541.5KX865.131.2600.0 (xpclient.8)Crypto API32D5A27EF38F06FBF23CD9F71A21D5A9E8578.5KX865.131. (xpsp_sp3_qfe.9)Crypto API32AE71A5AA9578KX865.131. (xpsp_sp3_gdr.8)Crypto API3232619FE9DACC901EE42A1.39MX646.1. (win7sp1_gdr.4)Crypto API32FAF1BA660F84789CCCE747CE6F9D055A1.10MX866.1. (win7sp1_gdr.4)Crypto API321295338CFE6FBC8D4368A841.11MX866.1. (win7sp1_ldr.3)Crypto API32ADBBA605F492A90E2E07C1.39MX646.1. (win7_gdr.5)Crypto API32B0BA2D4395C761.40MX646.1. (win7sp1_ldr.3)Crypto API325295DFEAB5FCE89D3051C1.39MX646.1. (win7_ldr.3)Crypto API32803EE9F2A1D1.10MX866.1. (win7_gdr.5)Crypto API32BD93FE6C1.10MX866.1. (win7_ldr.3)Crypto API320A9A6BDF32AE961KX866.0. (vistasp2_gdr.8)Crypto API32F180EDE9CFC3FF218D4BD9575KX865.131. (srv03_sp2_qfe.5)Crypto API32BDF19BF82DF8BFFD812CBE573KX865.131. (srv03_sp2_gdr.5)Crypto API32998C1AB57B0D95ED6E00B1.77MX646.2.8400.0 (winmain_win8rc.3)Crypto API32EAC651B25BB9ECF2EDABE1.51MX866.2.8400.0 (winmain_win8rc.3)Crypto API32BF2AA3DEF6CD1.35MX645.131. (srv03_sp2_gdr.5)Crypto API328C6E99CCD8AE1DD2C5C0B089C2230BAC1.36MX645.131. (srv03_sp2_qfe.5)Crypto API32291BB6E456BA43B148AB08961KX866.0. (vistasp2_ldr.8)Crypto API32261E01E2125EDA9D0EFE629A1.52MX866.2. (win8_rtm.7)Crypto API327BB3FE507DDA3FB5DF3AB1.82MX646.2. (win8_rtm.7)Crypto API32EFD55F2C12B843F6CC55F5580KX865.131. (xpsp_sp3_gdr.0)Crypto API32C3407DDC1CA9C81A9D79793580.5KX865.131. (xpsp_sp3_qfe.8)Crypto API3235B7E263F94F81A16D231.10MX866.1. (win7_gdr.6)Crypto API327DA089C75B1E92032D0CBE4ADE7C32BC1.11MX866.1. (win7sp1_gdr.5)Crypto API3260DEDCE65FBC81.11MX866.1. (win7sp1_ldr.3)Crypto API3249BFC6B2F6ADB17D543695531.5KX865.131. (xpsp2.2)Crypto API32CDF9A406B4A1.10MX866.1. (win7_ldr.7)Crypto API323D32AA191.40MX646.1. (win7sp1_gdr.5)Crypto API3212EE6FE9268CEE6D90FDCCBF89236C651.40MX646.1. (win7_ldr.7)Crypto API32F0BBCACAA44391.40MX646.1. (win7_gdr.6)Crypto API32D256EB74BF7DAD1.40MX646.1. (win7sp1_ldr.3)Crypto API32D3B5AD981ADCA3D95283D3A576.5KX865.131. (srv03_sp2_qfe.5)Crypto API32CC7CADFB20C251.10MX866.1. (win7_gdr.3)Crypto API325EE648DE757E9ADB1A9C7F72962KX866.0. (vistasp2_gdr.4)Crypto API32B0FD4EDD4EBA575.5KX865.131. (srv03_sp2_gdr.5)Crypto API32082B175EEA3C53ABA9BD4511.21MX646.0. (vistasp2_ldr.8)Crypto API32A490DFBA828CD9FAFBF4E71.21MX646.0. (vistasp2_gdr.8)Crypto API3253B2CE73BFEDBB65D3911.39MX646.1. (win7sp1_rc.0)Crypto API32C37EA82F1.10MX866.1. (win7sp1_rc.0)Crypto API32AA8C9D965
该文件总计107个版本,请下载到本地查看详情
如何选择&使用
第一步:您从我们网站下载下来文件之后,先将其解压(一般都是zip压缩包)。
第二步:然后根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。 如果您不知道是X86还是X64,您可以点此链接检测。
第三步:根据软件情况选择文件版本。此步骤比较复杂,如果是Windows的dll文件,
    版本号以5.0开头的或含有 nt 一般是windows2000的文件。
    版本号以5.1开头的或含有 xp、xpsp1、xpsp2、xpsp3 信息的一般是windowsXP的文件。
    版本号以6.0开头的或含有 longhorn、vista 信息的一般是windowsVista的文件。
    版本号以6.1开头的或含有 win7 信息的一般是windows7的文件。
    版本号以6.2开头的或含有 win8 信息的一般是windows8的文件。
    版本号以6.3开头的或含有 win8.1 信息的一般是windows8.1的文件。
    版本号以10.0开头的或含有 win10 信息的一般是windows10的文件。
    如果不是windows的dll文件,则需要灵活查看版本号、描述、网友提供的信息、以及相关dll的版本号去判断。
如果实在无法判断,则把每个版本的dll文件拷贝到对应目录(可以在我们网站上文件详细页面查看到)或 C:\Windows\System (Windows 95/98/Me), C:\WINNT\System32 (Windows NT/2000), C:\Windows\System32 (Windows XP,Vista,7) , 去尝试。
至此如果问题依旧,您可能需要使用regsvr32,方法如下: 1.单击开始,选择运行 2.输入 regsvr32 文件名.dll 并按下确认 之后会弹出注册成功信息。
另外,您还可以使用我们的修复工具进行修复。
该文件常见出现的位置
1X866.1. (win7_rtm.5)\WINDOWS\system322X865.131. (xpsp.3)\WINDOWS\system323X865.131. (xpsp_sp3_gdr.8)\WINDOWS\system324X865.131. (xpsp_sp3_gdr.0)\WINDOWS\system325X865.131. (xpsp_sp3_gdr.8)\WINDOWS\system32\dllcache6X646.1. (win7_rtm.5)\WINDOWS\system327X866.1. (win7_rtm.5)\Windows\SysWOW648X865.131. (xpsp.3)\WINDOWS\system32\dllcache9X865.131. (xpsp_sp3_gdr.0)\WINDOWS\system32\dllcache10X865.131. (xpsp_sp3_gdr.0)\WINDOWS\system32\dllcache11X865.131. (xpsp_sp3_gdr.0)\WINDOWS\system32\dllcache12X865.131. (xpsp_sp3_gdr.0)\WINDOWS\system3213X865.131. (xpsp_sp2_qfe.3)\WINDOWS\system3214X866.1. (win7sp1_gdr.5)\WINDOWS\system3215X646.1. (win7sp1_gdr.5)\WINDOWS\system32
本文件是网友自行上传,如有侵权请联系站长。
本文件是否含有恶意程序请自行斟酌,本站仅保证对原始上传的文件未做任何改动。
对使用不当等造成的一切后果与本站无关。
站长不易,如果可以请扫描底部二维码给我们捐助。
下载该文件基于RSA算法的数字签名 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 22时,
自己的渣毕设数字签名用的是MD5算法,网上找的RSA算法自己整的,密钥位数不是很大界面用wxpython做的,现学现做写的很烂
代码片段(2)
The digital signature based on RSA algorithm.c&~&11KB&&&&
#include &stdio.h&
#include &string.h&
#include &stdlib.h&
#include &limits.h&
#include &stdbool.h&
#include &stdint.h&
#include &time.h&
#include &assert.h&
long long temp1,temp2;
#define max(a,b) (temp1 = a, temp2 = b, temp1 & temp2 ? temp2 : temp1)
#define min(a,b) (temp1 = a, temp2 = b, temp1 & temp2 ? temp1 : temp2)
int prime_array[2000] = {2};
//存储2000以内的素数
static int prime_count = 1;
//计数2000以内素数个数
struct key {
//存储密钥
//判断2000以内数的素性
bool adjust(int value) {
if (2 == value) {
for (int i = 0; i & prime_ i++) {
if (value % prime_array[i] == 0) {
prime_array[prime_count++] =
void generate() {
for (int i = 3; i & 2000; i++) {
adjust(i);
//生成大奇数
int bigOdd() {
srand((unsigned int)time(NULL));
int n = rand() % 2000 + 1;
if (n != 0 && n % 2 == 0) {
return n - 1;
else if (n != 0 && n % 2 == 1) {
//生成伪素数
int pseudoprime() {
int n = bigOdd();
generate();
for (int i = 0; i & prime_ i++) {
if ((n != prime_array[i]) && ((n % prime_array[i]) == 0)) {
n = bigOdd();
//蒙哥马利算法
int Montgomery(int a, int p, int m) {
if (p == 0) {
int r = a %
int k = 1;
while (p & 1) {
if ((p & 1) != 0) {
k = (k * r) %
r = (r * r) %
return (r * k) %
bool witness(int r, int n) {
int a = n - 1;
int m = 0;
while (!(a & 1)) {
int x = Montgomery(r,a,n);
if (x == 1 || x == n - 1) {
while (m--) {
x = x * x %
if (x == n - 1) {
//米勒-拉宾素性检测
bool Miller_Rabin(int n, int T) {
if (n & 2) {
if (n == 2) {
if (!(n & 1)) {
while (T--) {
int a = rand() * (n - 1) % 2000 + 1;
if (witness(a,n)) {
//生成大素数
int prime() {
int p = pseudoprime();
while (!Miller_Rabin(p,4)) {
p = pseudoprime();
//辗转相除判别互质
bool gcd(long long p, long long q) {
if ((div = max(p,q) % min(p,q)) == 0) {
else if (min(p,q) % div != 1) {
//生成密钥
__declspec(dllexport) void createKey() {
int p = prime();
int q = prime();
while (p == q) {
q = prime();
key.n = p *
m = (p - 1) * (q - 1);
srand((unsigned int)time(NULL));
key.e = rand() % 2000 + 1;
while (!gcd(key.e,m)) {
key.e = rand() % 2000 + 1;
int d = 1;
while (d * key.e % m != 1) {
__declspec(dllexport) int return_e() {
return key.e;
__declspec(dllexport) int return_d() {
return key.d;
__declspec(dllexport) int return_n() {
return key.n;
long long BR(long long a, long long m, long long n) {
int i = -1;
int b[100];
while (m != 0) {
b[i] = m % 2;
m = m / 2;
d = a * a %
for (i = i - 1; i & 0; i--) {
if (b[i]) {
d = (d * a % n) * (d * a % n) %
d = d * d %
if (b[0]) {
d = d * a %
static int count = 0;
//计数加密元素个数
//加密模块
__declspec(dllexport)char* encrypt(char *s) {
if ((fp = fopen(s,"r+")) == NULL) {
printf("fail to open 1!\n");
FILE *tmp = tmpfile();
int cnt = 0;
while ((c = fgetc(fp)) != EOF) {
long long e = BR(c,key.e,key.n);
fprintf(tmp,"%lld ",e);
rewind(fp);
rewind(tmp);
fscanf(tmp,"%lld",&x);
while (cnt--) {
fprintf(fp,"%lld ",x);
fscanf(tmp,"%lld",&x);
fclose(fp);
fclose(tmp);
return "yes";
//解密模块
__declspec(dllexport)char* decrypt(char *s) {
if ((fp = fopen(s,"r+")) == NULL) {
printf("fail to open 1!\n");
FILE *tmp = tmpfile();
while (cnt--) {
fscanf(fp,"%lld",&d);
long long c = BR(d,key.d,key.n);
fprintf(tmp,"%c",c);
fclose(fp);
fp = fopen(s,"w");
rewind(tmp);
while ((c = fgetc(tmp)) != EOF) {
fprintf(fp,"%c",c);
fclose(fp);
fclose(tmp);
return "yes";
#define F(x, y, z) (((x) & (y)) | ((~x) & (z)))
#define G(x, y, z) (((x) & (z)) | ((y) & (~z)))
#define H(x, y, z) ((x) ^ (y) ^ (z))
#define I(x, y, z) ((y) ^ ((x) | (~z)))
#define RL(x, y) (((x) && (y)) | ((x) && (32 - (y))))
//x向左循环移y位
#define PP(x) (x&&24)|((x&&8)&0xff0000)|((x&&8)&0xff00)|(x&&24)
//将x高低位互换,例如PP(aabbccdd)=ddccbbaa
#define FF(a, b, c, d, x, s, ac) a = b + (RL((a + F(b,c,d) + x + ac),s))
#define GG(a, b, c, d, x, s, ac) a = b + (RL((a + G(b,c,d) + x + ac),s))
#define HH(a, b, c, d, x, s, ac) a = b + (RL((a + H(b,c,d) + x + ac),s))
#define II(a, b, c, d, x, s, ac) a = b + (RL((a + I(b,c,d) + x + ac),s))
unsigned A,B,C,D,a,b,c,d,i,len,flen[2],x[16];
//i临时变量,len文件长,flen[2]为64位二进制表示的文件初始长度
char filename[200];
void md5(){
//MD5核心算法,供64轮
a=A,b=B,c=C,d=D;
/**//* Round 1 */
FF (a, b, c, d, x[ 0],
7, 0xd76aa478); /**//* 1 */
FF (d, a, b, c, x[ 1], 12, 0xe8c7b756); /**//* 2 */
FF (c, d, a, b, x[ 2], 17, 0x242070db); /**//* 3 */
FF (b, c, d, a, x[ 3], 22, 0xc1bdceee); /**//* 4 */
FF (a, b, c, d, x[ 4],
7, 0xf57c0faf); /**//* 5 */
FF (d, a, b, c, x[ 5], 12, 0x4787c62a); /**//* 6 */
FF (c, d, a, b, x[ 6], 17, 0xa8304613); /**//* 7 */
FF (b, c, d, a, x[ 7], 22, 0xfd469501); /**//* 8 */
FF (a, b, c, d, x[ 8],
7, 0x); /**//* 9 */
FF (d, a, b, c, x[ 9], 12, 0x8b44f7af); /**//* 10 */
FF (c, d, a, b, x[10], 17, 0xffff5bb1); /**//* 11 */
FF (b, c, d, a, x[11], 22, 0x895cd7be); /**//* 12 */
FF (a, b, c, d, x[12],
7, 0x6b901122); /**//* 13 */
FF (d, a, b, c, x[13], 12, 0xfd987193); /**//* 14 */
FF (c, d, a, b, x[14], 17, 0xa679438e); /**//* 15 */
FF (b, c, d, a, x[15], 22, 0x49b40821); /**//* 16 */
/**//* Round 2 */
GG (a, b, c, d, x[ 1],
5, 0xf61e2562); /**//* 17 */
GG (d, a, b, c, x[ 6],
9, 0xc040b340); /**//* 18 */
GG (c, d, a, b, x[11], 14, 0x265e5a51); /**//* 19 */
GG (b, c, d, a, x[ 0], 20, 0xe9b6c7aa); /**//* 20 */
GG (a, b, c, d, x[ 5],
5, 0xd62f105d); /**//* 21 */
GG (d, a, b, c, x[10],
9, 0x); /**//* 22 */
GG (c, d, a, b, x[15], 14, 0xd8a1e681); /**//* 23 */
GG (b, c, d, a, x[ 4], 20, 0xe7d3fbc8); /**//* 24 */
GG (a, b, c, d, x[ 9],
5, 0x21e1cde6); /**//* 25 */
GG (d, a, b, c, x[14],
9, 0xc33707d6); /**//* 26 */
GG (c, d, a, b, x[ 3], 14, 0xf4d50d87); /**//* 27 */
GG (b, c, d, a, x[ 8], 20, 0x455a14ed); /**//* 28 */
GG (a, b, c, d, x[13],
5, 0xa9e3e905); /**//* 29 */
GG (d, a, b, c, x[ 2],
9, 0xfcefa3f8); /**//* 30 */
GG (c, d, a, b, x[ 7], 14, 0x676f02d9); /**//* 31 */
GG (b, c, d, a, x[12], 20, 0x8d2a4c8a); /**//* 32 */
/**//* Round 3 */
HH (a, b, c, d, x[ 5],
4, 0xfffa3942); /**//* 33 */
HH (d, a, b, c, x[ 8], 11, 0x); /**//* 34 */
HH (c, d, a, b, x[11], 16, 0x6d9d6122); /**//* 35 */
HH (b, c, d, a, x[14], 23, 0xfde5380c); /**//* 36 */
HH (a, b, c, d, x[ 1],
4, 0xa4beea44); /**//* 37 */
HH (d, a, b, c, x[ 4], 11, 0x4bdecfa9); /**//* 38 */
HH (c, d, a, b, x[ 7], 16, 0xf6bb4b60); /**//* 39 */
HH (b, c, d, a, x[10], 23, 0xbebfbc70); /**//* 40 */
HH (a, b, c, d, x[13],
4, 0x289b7ec6); /**//* 41 */
HH (d, a, b, c, x[ 0], 11, 0xeaa127fa); /**//* 42 */
HH (c, d, a, b, x[ 3], 16, 0xd4ef3085); /**//* 43 */
HH (b, c, d, a, x[ 6], 23, 0x04881d05); /**//* 44 */
HH (a, b, c, d, x[ 9],
4, 0xd9d4d039); /**//* 45 */
HH (d, a, b, c, x[12], 11, 0xe6db99e5); /**//* 46 */
HH (c, d, a, b, x[15], 16, 0x1fa27cf8); /**//* 47 */
HH (b, c, d, a, x[ 2], 23, 0xc4ac5665); /**//* 48 */
/**//* Round 4 */
II (a, b, c, d, x[ 0],
6, 0xf4292244); /**//* 49 */
II (d, a, b, c, x[ 7], 10, 0x432aff97); /**//* 50 */
II (c, d, a, b, x[14], 15, 0xab9423a7); /**//* 51 */
II (b, c, d, a, x[ 5], 21, 0xfc93a039); /**//* 52 */
II (a, b, c, d, x[12],
6, 0x655b59c3); /**//* 53 */
II (d, a, b, c, x[ 3], 10, 0x8f0ccc92); /**//* 54 */
II (c, d, a, b, x[10], 15, 0xffeff47d); /**//* 55 */
II (b, c, d, a, x[ 1], 21, 0x85845dd1); /**//* 56 */
II (a, b, c, d, x[ 8],
6, 0x6fa87e4f); /**//* 57 */
II (d, a, b, c, x[15], 10, 0xfe2ce6e0); /**//* 58 */
II (c, d, a, b, x[ 6], 15, 0xa3014314); /**//* 59 */
II (b, c, d, a, x[13], 21, 0x4e0811a1); /**//* 60 */
II (a, b, c, d, x[ 4],
6, 0xf7537e82); /**//* 61 */
II (d, a, b, c, x[11], 10, 0xbd3af235); /**//* 62 */
II (c, d, a, b, x[ 2], 15, 0x2ad7d2bb); /**//* 63 */
II (b, c, d, a, x[ 9], 21, 0xeb86d391); /**//* 64 */
__declspec(dllexport)char* use_md5(char *str,char *output_file) {
char *filename =
//用get函数,避免scanf以空格分割数据,
if (filename[0]==34) filename[strlen(filename)-1]=0,strcpy(filename,filename+1);
//支持文件拖曳,但会多出双引号,这里是处理多余的双引号
if (!strcmp(filename,"exit")) exit(0);
//输入exit退出
if (!(fp=fopen(filename,"rb"))) {
//以二进制打开文件
fseek(fp, 0, SEEK_END);
//文件指针转到文件末尾
if((len=ftell(fp))==-1) {
fclose(fp);
//ftell函数返回long,最大为2GB,超出返回-1
rewind(fp);
//文件指针复位到文件头
A=0x,B=0xefcdab89,C=0x98badcfe,D=0x; //初始化链接变量
flen[1]=len/0x;
//flen单位是bit
flen[0]=(len%0x;
memset(x,0,64);
//初始化x数组为0
fread(&x,4,16,fp);
//以4字节为一组,读取16组数据
for(i=0;i&len/64;i++){
//循环运算直至文件结束
memset(x,0,64);
fread(&x,4,16,fp);
((char*)x)[len%64]=128;
//文件结束补1,补0操作,128二进制即
if(len%64&55) md5(),memset(x,0,64);
memcpy(x+14,flen,8);
//文件末尾加入原文件的bit长度
fclose(fp);
fp = fopen(filename,"a");
fseek(fp,0,SEEK_END);
fprintf(fp,"MD5 Code:%08x%08x%08x%08x\n",PP(A),PP(B),PP(C),PP(D));
//高低位逆反输出
out = fopen(output_file,"w");
fprintf(out,"%08x%08x%08x%08x",PP(A),PP(B),PP(C),PP(D));
fclose(out);
fclose(fp);
return "yes";
__declspec(dllexport)char* confirm_message(char *input,char *message) {
fp = fopen(input,"r");
fseek(fp,-34L,SEEK_END);
char *str1,*str2;
str1 = (char*)malloc(sizeof(char)*33);
str2 = (char*)malloc(sizeof(char)*33);
fgets(str1,32,fp);
m = fopen(message,"r");
fgets(str2,32,m);
fclose(fp);
fclose(m);
if (0==strcmp(str1,str2)) {
return "yes";
return "no";
__declspec(dllexport)char* restore_file(char *input) {
FILE *tmp = tmpfile();
fp = fopen(input,"r");
fseek(fp,-49L,SEEK_END);
int cnt = ftell(fp);
fseek(fp,0L,SEEK_SET);
while (cnt--) {
c = fgetc(fp);
fputc(c,tmp);
fclose(fp);
rewind(tmp);
fp = fopen("D:\\rsa.txt","w");
while ((c = fgetc(tmp)) != EOF) {
fputc(c,fp);
fclose(fp);
fclose(tmp);
return "yes";
RSA_MD5.py&~&5KB&&&&
# -*- coding: cp936 -*-
from ctypes import *
lib = cdll.LoadLibrary("C:\\Users\\lb\\code\\new.dll")
class RSAFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,"Digital signature based on RSA algorithm--by аж╠С",size = (500,520))
self.panel = wx.Panel(self,-1)
self.button1 = wx.Button(self.panel,-1,"Generate key",size =
(100,100),pos = (10,10))
self.Bind(wx.EVT_BUTTON,self.ClickButtonGenerate,self.button1)
self.button2 = wx.Button(self.panel,-1,"Choice file",size=(100,25),pos = (10,160))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoice1,self.button2)
self.button3 = wx.Button(self.panel,-1,"Choice file",size=(100,25),pos = (10,200))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoice2,self.button3)
self.button4 = wx.Button(self.panel,-1,"Choice file",size=(100,25),pos = (10,240))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoice3,self.button4)
self.button5 = wx.Button(self.panel,-1,"MD5",size=(100,25),pos= (10,280))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoiceMD5,self.button5)
self.button6 = wx.Button(self.panel,-1,"Encrypt",size =(100,25),pos = (10,320))
self.Bind(wx.EVT_BUTTON,self.ClickButtonEncrypt,self.button6)
self.button7 = wx.Button(self.panel,-1,"Decrypt",size =(100,25),pos = (10,360))
self.Bind(wx.EVT_BUTTON,self.ClickButtonDecrypt,self.button7)
self.button8 = wx.Button(self.panel,-1,"verification",size=(100,25),pos = (10,400))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoiceVer,self.button8)
self.button9 = wx.Button(self.panel,-1,"restore file",size=(100,25),pos = (10,440))
self.Bind(wx.EVT_BUTTON,self.ClickButtonChoiceRe,self.button9)
self.txt1 = wx.StaticText(self.panel,-1,"public key",pos = (120,15))
self.txt2 = wx.StaticText(self.panel,-1,"secret key",pos = (120,75))
self.txt3 = wx.StaticText(self.panel,-1,"input file",pos = (120,160))
self.txt4 = wx.StaticText(self.panel,-1,"output file",pos = (120,200))
self.txt5 = wx.StaticText(self.panel,-1,"message file",pos = (120,240))
self.txt6 = wx.StaticText(self.panel,-1,"message",pos = (120,280))
self.txt7 = wx.StaticText(self.panel,-1,"yes/no",pos = (120,320))
self.txt8 = wx.StaticText(self.panel,-1,"yes/no",pos = (120,360))
self.txt9 = wx.StaticText(self.panel,-1,"yes/no",pos = (120,400))
self.txt10 = wx.StaticText(self.panel,-1,"yes/no",pos = (120,440))
wildcard = "Python source (*.txt)|*.txt|" \
"Compiled Python (*.py)|*.py|" \
"All files (*.*)|*.*"
self.dialog = wx.FileDialog(None, "Choose a file", os.getcwd(),
"", wildcard, wx.OPEN)
def ClickButtonGenerate(self,event):
lib.createKey()
wx.TextCtrl(self.panel,-1,str(lib.return_e()),size = (250,25),pos = (200,15))
wx.TextCtrl(self.panel,-1,str(lib.return_n()),size = (250,25),pos = (200,40))
wx.TextCtrl(self.panel,-1,str(lib.return_d()),size = (250,25),pos = (200,75))
wx.TextCtrl(self.panel,-1,str(lib.return_n()),size = (250,25),pos = (200,100))
def ClickButtonChoice1(self,event):
if self.dialog.ShowModal() == wx.ID_OK:
wx.TextCtrl(self.panel,-1,self.dialog.GetPath(),pos = (200,160))
s1=create_string_buffer(str(self.dialog.GetPath()))
def ClickButtonChoice2(self,event):
if self.dialog.ShowModal() == wx.ID_OK:
wx.TextCtrl(self.panel,-1,self.dialog.GetPath(),pos = (200,200))
s2=create_string_buffer(str(self.dialog.GetPath()))
def ClickButtonChoice3(self,event):
if self.dialog.ShowModal() == wx.ID_OK:
wx.TextCtrl(self.panel,-1,self.dialog.GetPath(),pos = (200,240))
s3=create_string_buffer(str(self.dialog.GetPath()))
def ClickButtonChoiceMD5(self,event):
lib.use_md5.restype = c_char_p
lib.use_md5.argtypes = [c_char_p]
txt = lib.use_md5(s1,s3)
wx.TextCtrl(self.panel,-1,txt,size = (250,25),pos = (200,280))
def ClickButtonEncrypt(self,event):
lib.encrypt.restype = c_char_p
lib.encrypt.argtypes = [c_char_p]
txt = lib.encrypt(s1,s2)
wx.TextCtrl(self.panel,-1,txt,size = (250,25),pos = (200,320))
def ClickButtonDecrypt(self,event):
lib.decrypt.restype = c_char_p
lib.decrypt.argtypes = [c_char_p]
txt = lib.decrypt(s2,s1)
wx.TextCtrl(self.panel,-1,txt,size = (250,25),pos = (200,360))
def ClickButtonChoiceVer(self,event):
lib.confirm_message.restype = c_char_p
lib.confirm_message.argtypes = [c_char_p]
wx.TextCtrl(self.panel,-1,lib.confirm_message(s1,s3),size = (250,25),pos = (200,400))
def ClickButtonChoiceRe(self,event):
lib.restore_file.restype = c_char_p
lib.restore_file.argtypes = [c_char_p]
wx.TextCtrl(self.panel,-1,lib.restore_file(s1),size = (250,25),pos = (200,440))
if __name__ == '__main__':
app = wx.PySimpleApp()
frame = RSAFrame(parent = None,id = -1)
frame.Show()
app.MainLoop()
开源中国-程序员在线工具:
相关的代码(11)
2回/2139阅
0回/1554阅
4回/2699阅
厉害。如果都是自己写就更厉害了。
2楼:notishell 发表于
这个也能做毕设?没啥技术含量啊
3楼:梦中人在做梦 发表于
运行不了呢
4楼:sdt 发表于
必射嘛,看开点,人家上的是原理结构
开源从代码分享开始
想了一半个小时的其它代码

我要回帖

更多关于 悔创阿里是马云 的文章

 

随机推荐