乙份簡易資料傳輸加密演算法

2021-09-03 08:51:39 字數 1207 閱讀 5882

在小型嵌入式系統中,外部資料通訊不方便以明文方式傳輸,但一些常用加密演算法如(des)等太過於耗費系統資源。我們可以自定義一些簡易演算法為我們的資料加密,通常這些自定義演算法因為不同於常用加密演算法反而使資料更安全。

資料加密有兩個部分,乙個是資料序列,我們可以將資料攪亂使之無規律可循;另乙個是數值加密,使用不同類別的演算法或可逆過程為資料加密。下面僅介紹一種加解密演算法。先直接上原始碼

/*    (簡化演算法,對稱式加密)

*/#include

#include

#include "data_encrypt.h"

const unsigned char key[8]=;        //the key 0~7,對稱式加密,加密解密為同一組金鑰

/****加密****/

void data_encrypt(unsigned char *s,unsigned int len)

for(i=0; i<(len/8); i++)    //資料序列加密

for(j=i*8; jfor(j=0; j>key[0]);        //根據key中資料將每個位元組的bit位加密,如資料0x13,加密後變為0x1c

temp |= ((0x01)&(temp1[j]>>key[1]))<<1;

temp |= ((0x01)&(temp1[j]>>key[2]))<<2;

temp |= ((0x01)&(temp1[j]>>key[3]))<<3;

temp |= ((0x01)&(temp1[j]>>key[4]))<<4;

temp |= ((0x01)&(temp1[j]>>key[5]))<<5;

temp |= ((0x01)&(temp1[j]>>key[6]))<<6;

temp |= ((0x01)&(temp1[j]>>key[7]))<<7;

*(s+j) = temp;

}free(temp1);

}/****解密****/

void data_decrypt(unsigned char *s,unsigned int len)

for(i=0; i<(len/8); i++)            //解密只是逆向加密,演算法與加密類似,金鑰與加密相同

for(j=i*8; jfor(j=0; j>1)<>2)<>3)<>4)<>5)<>6)<>7)<*(s+j) = temp;

}free(temp1);

}

一種網路資料傳輸加密演算法的設想

核心思想 對每個使用者設定不同的秘鑰。對某一網路由於賬號的id 或使用者名稱 是不能重複的,所以如果對id 或使用者名稱 進行處理作為資訊加密的秘鑰,可基本保證每個使用者的加密秘鑰都不相同。資料從客戶端傳到伺服器,可用客戶端的使用者秘鑰進行加密,伺服器進行解密後得到原始資料 伺服器向客戶端傳送資料時...

資料傳輸加密 RSA AES

首先 我們先了解一下什麼是rsa和aes 1 什麼是rsa?2 什麼是aes?通過上面,我們了解到。aes是目前主流的對稱加密演算法,而rsa是非對稱加密演算法。什麼是對稱演算法aes?對稱演算法 請求發起方與接收方擁有相同的金鑰。發起流程 1 請求方用金鑰加密密文,傳送給接收方。2 接收方用金鑰對...

資料傳輸的加密

一 對稱加密 加密資料與解密資料使用相同的金鑰,這種加密方法稱為對稱加密 特點 加密與解密使用相同金鑰,加密解密速度快 將原始資料進行切塊,逐個進行加密。缺點 每乙個通訊的物件都有一把金鑰,如果通訊物件過多導致金鑰過多。金鑰分發問題,如何保證金鑰不被竊取 二 非對稱加密 加密資料與解密資料使用一堆不...