当前位置:首页 » 编程语言 » des算法代码c语言

des算法代码c语言

发布时间: 2025-07-27 22:58:08

① 求祖冲之(zuc)密码算法算法加密c语言实现代码。

这么久没人答,我都弄懂了。祖冲之算法分3个算法ZUC是祖冲之算法的核心,仅产生密键流KS。供EEA3和EIA3调用。EEA3是加密算法,用KS捆绑上用户的密钥蚂毕雀,加密用户数据D,变成密文。相当于国际上的RSA、DES、AES算法。作用是对称的加密解密算法EIA3是数据完整性算法,MAC的一种。捆绑上用数答户的密钥,结合KS,生成散列值。相当于国际上的HMAC结合MD5,SHA1的用法。用于密码授权值的闷早生成和保存。

② 求一个用c语言写的DES加密算法~~

using system;
using system.security.cryptography;
using system.io;
using system.text;

public class encryptstringdes {

public static void main(string);
return;
}

// 使用utf8函数加密输入参数
utf8encoding utf8encoding = new utf8encoding();
byte.tochararray());

// 方式一:调用默认的des实现方法des_csp.
des des = des.create();
// 方式二:直接使用des_csp()实现des的实体
//des_csp des = new des_csp();

// 初始化des加密的密钥和一个随机的、8比特的初始化向量(iv)
byte iv = {0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef};
des.key = key;
des.iv = iv;

// 建立加密流
symmetricstreamencryptor sse = des.createencryptor();

// 使用cryptomemorystream方法获取加密过程的输出
cryptomemorystream cms = new cryptomemorystream();

// 将symmetricstreamencryptor流中的加密数据输出到cryptomemorystream中
sse.setsink(cms);

// 加密完毕,将结果输出到控制台
sse.write(inputbytearray);
sse.closestream();

// 获取加密数据
byte);
}
console.writeline();

//上面演示了如何进行加密,下面演示如何进行解密
symmetricstreamdecryptor ssd = des.createdecryptor();
cms = new cryptomemorystream();
ssd.setsink(cms);
ssd.write(encrypteddata);
ssd.closestream();

byte decryptedchararray = utf8encoding.getchars(decrypteddata);
console.writeline("解密后数据:");
console.write(decryptedchararray);
console.writeline();
}
}

编译

d:\csharp>csc des_demo.cs
microsoft (r) c# compiler version 7.00.8905
right (c) microsoft corp 2000. all rights reserved.

运行实例:
d:\csharp>des_demo.exe 使用c#编写des加密程序的framework

加密结果:
3d 22 64 c6 57 d1 c4 c3 cf 77 ce 2f d0 e1 78 2a 4d ed 7a a8 83 f9 0e 14 e1 ba 38
7b 06 41 8d b5 e9 3f 00 0d c3 28 d1 f9 6d 17 4b 6e a7 41 68 40

③ C语言char des[],*p=des中这个*p是什么意思在程序中又如何表示des[1]呢

p指向的地址就是des的地址,des[1]=*(p+1)

④ c语言,怎么知道某一个数据在txt的第几个字节

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned long file_size;
char *text_buf;
FILE *fp;

fp = fopen("aa.txt","r");//这里把aa.txt改成你要打开的文件名字
fseek(fp,0,SEEK_END);
file_size = ftell(fp);
rewind(fp);
text_buf = (char *)malloc(file_size+1);
memset(text_buf,'',file_size+1);
fread(text_buf,file_size,1,fp);
char *str = "a";//这个"a"字符就是你要查找的字符
char *des;
des = strstr(text_buf,str);
int result;
result = des-text_buf+1;
printf("你查找的文字在txt的第%d位置 ",result);
}

⑤ C语言 实现逆序的Memcpy方法。

参考代码如下:

void*reversememcpy(void*destination,constvoid*source,intnum)
{
char*des=(char*)destination,*src=(char*)source;
inti;
if(des==NULL||src==NULL||num<=0){
printf("error");
returnNULL;
}
for(i=0;i<num;++i)
des[num-i-1]=src[i];
return(void*)des;
}

⑥ C语言中handle类型是什么意思

1、handle是句柄类型,来源于Handle-C,Handle-C是硬件描述语言。windows在创建一个系统对象的同时,把一个句柄赋值给这个实体 ,可以用这个句柄来识别或者修改这个对象, 这就是handle句柄的作用。

2、句柄(HANDLE)是资源的标识。操作系统要管理和操作这些资源,都是通过句柄来找到对应的资源。按资源的类型,又可将句柄细分成图标句柄(HICON),光标句柄(HCURSOR),窗口句柄(HWND),应用程序实例句柄(HINSTANCE)等等各种类型的句柄。 所以HWND是一种HANDLE

⑦ des解密算法,利用C语言解密JAVA语言加密的密码。。密钥为12345678,加密后的密文为:26d086be3a3a62fc

// C 语言 DES用的是 ECB模式, 没有填充
// 因此Java端要对应, 你的明文是 liubiao 吗?
// 另外 DES已经不安全了, 如果可以改为 3DES或者 AES吧。
public class LearnDes {

public static void main(String[] args) {
try {
System.out.println(encrypt("liubiao", "12345678"));

System.out.println(decrypt("26d086be3a3a62fc", "12345678"));
} catch (Exception e) {
e.printStackTrace();
}
}
public static String encrypt(String message, String key) throws Exception {
//Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
Cipher cipher = Cipher.getInstance("DES/ECB/NOPADDING");

DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));

SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
//cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
cipher.init(Cipher.ENCRYPT_MODE, secretKey );

return toHexString(cipher.doFinal(message.getBytes("UTF-8")));
}

public static String decrypt(String message, String key) throws Exception {

byte[] bytesrc = convertHexString(message);

//Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
Cipher cipher = Cipher.getInstance("DES/ECB/NOPADDING");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));

//cipher.init(Cipher.DECRYPT_MODE, secretKey, iv);
cipher.init(Cipher.DECRYPT_MODE, secretKey );

byte[] retByte = cipher.doFinal(bytesrc);
return new String(retByte);
}

public static byte[] convertHexString(String ss) {
byte digest[] = new byte[ss.length() / 2];
for (int i = 0; i < digest.length; i++) {
String byteString = ss.substring(2 * i, 2 * i + 2);
int byteValue = Integer.parseInt(byteString, 16);
digest[i] = (byte) byteValue;
}

return digest;
}
public static String toHexString(byte b[]) {
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < b.length; i++) {
String plainText = Integer.toHexString(0xff & b[i]);
if (plainText.length() < 2)
plainText = "0" + plainText;
hexString.append(plainText);
}

return hexString.toString();
}
}

热点内容
java返回this 发布:2025-10-20 08:28:16 浏览:587
制作脚本网站 发布:2025-10-20 08:17:34 浏览:882
python中的init方法 发布:2025-10-20 08:17:33 浏览:575
图案密码什么意思 发布:2025-10-20 08:16:56 浏览:761
怎么清理微信视频缓存 发布:2025-10-20 08:12:37 浏览:678
c语言编译器怎么看执行过程 发布:2025-10-20 08:00:32 浏览:1006
邮箱如何填写发信服务器 发布:2025-10-20 07:45:27 浏览:251
shell脚本入门案例 发布:2025-10-20 07:44:45 浏览:108
怎么上传照片浏览上传 发布:2025-10-20 07:44:03 浏览:800
python股票数据获取 发布:2025-10-20 07:39:44 浏览:706