關於加密解密的乙個問題

2022-04-15 05:11:22 字數 1343 閱讀 4069

關於加密解密的乙個問題 delphi / windows sdk/api

演算法想實現這麼個功能  

加密:  

根據10位數的數字編號如"1000000001",加上數字key後,產生一串8位數的數字編號  

解密:  

解密就是把8位數數字編號還原成10的  

請各位高手幫忙,分不夠可以再給

大家幫幫忙啊

程式自己寫,給你說方法,  

加密:數字編號->轉成16進製制數字編號->加數字key->不夠8位在前面補隨機數->第一位的16進製制高8位是描述你加密的有效長度.  

解密,反之  

up演算法還是自己想個比較好,要不加密就沒什麼意義拉

最簡單就是通過異或進行加解密,舉個例子吧,金鑰k長度為l,欲加密明文a長度為l,  

將明文分段擷取為a1+a2+...+an;長度均為l,不足的可高位補0,然後取密文z=(a1   xor   k)+(a2   xor   k)+...+(an   xor   k),  

解密的過程與加密相同,將密文分段與金鑰異或再拼接就可得到明文,另外,如果想提公升一些安全性,則可對每段明文進行多次異或,每異或一次後,將結果迴圈移位.  

說得詳細一些,最好帖段**啊,新手啊

function(a,key:string):string;  

var  

temp:string;  

i,j,blocknum,alen,keylen:   integer  

begin  

temp:=a;  

alen:=length(temp);  

keylen:=length(key);  

whlie   (alen   mod   keylen)<>0   do    

begin  

temp:=temp+$0;  

inc(alen);  

end;  

setlength(result,alen);  

blocknum:=alen   div   keylen  

for   i:=0   to   blocknum-1   do  

for   j:=1   to   keylen   do  

result[i*keylen+j]:=char(byte(a[i*keylen+j])   xor   byte(key[j]);  

end;  

好象不行啊  

樓上的不支援數字吧

沒人回答啊,鬱悶啊

我只是寫個例程的說,你只要能找到乙個演算法就可以了,加解密都是基於數學演算法的,只要找到適當的演算法,再寫成程式就可以了.

乙個簡單的加密 解密方法

private function encryptstring strstring dim charhexset,intstringlen,strtemp,strraw,i,intkey,intoffset randomize timer intkey round rnd 1000000 100000...

C 乙個封裝的加密解密類

using system using system.text using system.globalization using system.security.cryptography using system.windows.forms namespace jh.encrypts 使用預設金鑰字串...

C 乙個封裝的加密解密類

using system using system.text using system.globalization using system.security.cryptography using system.windows.forms namespace jh.encrypts 使用預設金鑰字串...