導航:首頁 > 文檔加密 > 加密演算法default

加密演算法default

發布時間:2022-09-23 07:25:25

1. 維吉利亞加密演算法 求C或C++源代碼 !!急

#include <stdio.h>
#include <iostream>
#include <string>
using namespace std;

void encrypt(char *m, char *k, char *c) //加密演算法
{
int i = 0,j=0;
while(m[i] != '\0')
{
if(m[i] >= 'a' && m[i] <= 'z')
{
c[i] = (m[i] - 'a' + k[i%4] - 'a') % 26 + 'a';
i++;

}
else
{
c[i] = (m[i] - 'A' + k[i%4] - 'A') % 26 + 'A';
i++;

}
}
c[i] = '\0';

}

void decrypt(char *m, char *k, char *c) //解密演算法
{
int i = 0,j=0;
while(c[i] != '\0')
{
if(c[i] >= 'a' && c[i] <= 'z')
{
m[i] = (c[i] - k[i%4] + 26) % 26 + 'a'; //注意此處
i++;

}

}
m[i] = '\0';

}

void main()
{

int ii = 1, jj,j;

char mm[100];

char kk[100];
printf("enter the k's contest:");
for(j=0;kk[j-1]!='#';j++)
{
kk[j]=getchar();
}

char cc[100];
while(ii)
{
printf("0:Exit 1 : Encrypt 2 : Decrypt\n");
printf("input the number:\n");
scanf("%d",&jj);
switch (jj)
{
case 0:

break;

case 1 : printf("input the original text:\n");
scanf("%s", mm);
encrypt(mm, kk, cc);
printf("%s\n", cc);
break;
case 2 : printf("input the cryptograph:\n");
scanf("%s", cc);
decrypt(mm, kk, cc);
printf("%s\n", mm);
break;
default : break;

}
}

}
你再調試下,有點小錯

2. 如何通過php 進行AES256加密演算法

<?phpclass aes {
// CRYPTO_CIPHER_BLOCK_SIZE 32

private $_secret_key = 'default_secret_key';
public function setKey($key) { $this->_secret_key = $key;
}
public function encode($data) { $td = mcrypt_mole_open(MCRYPT_RIJNDAEL_256,'',MCRYPT_MODE_CBC,''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($td),MCRYPT_RAND);
mcrypt_generic_init($td,$this->_secret_key,$iv); $encrypted = mcrypt_generic($td,$data);
mcrypt_generic_deinit($td);
return $iv . $encrypted;
}
public function decode($data) { $td = mcrypt_mole_open(MCRYPT_RIJNDAEL_256,'',MCRYPT_MODE_CBC,''); $iv = mb_substr($data,0,32,'latin1');
mcrypt_generic_init($td,$this->_secret_key,$iv); $data = mb_substr($data,32,mb_strlen($data,'latin1'),'latin1'); $data = mdecrypt_generic($td,$data);
mcrypt_generic_deinit($td);
mcrypt_mole_close($td);
return trim($data);
}
}
$aes = new aes();$aes->setKey('key');
// 加密$string = $aes->encode('string');// 解密$aes->decode($string);?>

3. MD5的System.Text.Encoding.DeFault 什麼意思


MD5加密:
using System.Security.Cryptography;
public static String Encrypt(String str)
{
MD5 md5 = new MD5CryptoServiceProvider();
Byte[] data = System.Text.Encoding.Default.GetBytes(str);
Byte[] md5data = md5.ComputeHash(data);
String ss = "";
for (Int32 i = 0; i < md5data.Length; i++)
{
ss += md5data[i].ToString("X").PadLeft(2, '0');
}
return ss;
}

MD5演算法無法解密,MD5演算法所得到的加密串是唯一的,要想驗證輸入的帳號密碼是否正確,只需要把輸入的帳號密碼用MD5加密後,再和文件里的比比就行了。
就算對方知道了文件裡面的加密串,也無法破解原密碼。
有關MD5演算法,LZ可以在網路查查。

假設LZ你還需要把加密後的東西還原回去的話,那麼我建議你不要使用成熟的可以加密的加密演算法,因為這些演算法有對應的解密演算法,所以對方如果懂加密原理的話,是可以解密的。

所以我建議你自己定義一個加密解密演算法,這個也很簡單,把字元串加加減減,乘乘除除不就行了嗎?或者把字元串變成二進制數組,然後對這個二進制數組處理一下,在轉回去保存,要破解是很難的。
byte[] Code = Encoding.UTF8.GetBytes(str);//轉成位元組數組

有一個加密演算法,採用密鑰加密的。
//加密
public static String MiYao(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Encoding.Unicode.GetBytes(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateEncryptor(key, key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Convert.ToBase64String(MStream.ToArray());
}
//解密
public static String JieMi(String str)
{
String encryptKey = "Oyea";
DESCryptoServiceProvider descsp = new DESCryptoServiceProvider();
byte[] key = Encoding.Unicode.GetBytes(encryptKey);
byte[] data = Convert.FromBase64String(str);
System.IO.MemoryStream MStream = new System.IO.MemoryStream();
CryptoStream CStream = new CryptoStream(MStream, descsp.CreateDecryptor(key,key), CryptoStreamMode.Write);
CStream.Write(data, 0, data.Length);
CStream.FlushFinalBlock();
return Encoding.Unicode.GetString(MStream.ToArray());
}

4. 用c語言設計一個簡單地加密算,解密演算法,並說明其中的原理

恰巧這兩天剛看的一種思路,很簡單的加密解密演算法,我說一下吧。
演算法原理很簡單,假設你的原密碼是A,用A與數B按位異或後得到C,C就是加密後的密碼,用C再與數B按位異或後能得回A。即(A異或B)異或B=A。用C實現很簡單的。
這就相當於,你用原密碼A和特定數字B產生加密密碼C,別人拿到這個加密的密碼C,如果不知道特定的數字B,他是無法解密得到原密碼A的。
對於密碼是數字的情況可以用下面的代碼:
#include <stdio.h>
#define BIRTHDAY 19880314
int main()
{
long a, b;

scanf("%ld", &a);
printf("原密碼:%ld\n", a);
b = BIRTHDAY;
a ^= b;
printf("加密密碼:%ld\n", a);

a ^= b; printf("解密密碼:%ld\n", a);
return 0;
}
如果密碼是字元串的話,最簡單的加密演算法就是對每個字元重新映射,只要加密解密雙方共同遵守同一個映射規則就行啦。

5. C# 加密、解密

用aes,des之類的加密演算法加密,密鑰持久化在配置文件或者資料庫中。這樣別人看到的都是密文,你在自己的界面中可以用對應的密鑰解密,你看到的就是原文了。

6. 請問DES加密演算法中的這3個函數(獲取密鑰函數,加密函數與解密函數)的含義是什麼(附函數演算法)

/// <summary>
/// DES密鑰
/// </summary>
private const string KEY_64 = "11111111";//注意了,是8個字元,64位
/// <summary>
/// DES向量
/// </summary>
private const string IV_64 = "11111111";
/// <summary>
/// 加密DES
/// </summary>
/// <param name="data">需要加密的字元串</param>
/// <returns>加密後的字元串</returns>
public static string EncodeDES(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
int i = cryptoProvider.KeySize;
MemoryStream ms = new MemoryStream();
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateEncryptor(byKey, byIV), CryptoStreamMode.Write);
StreamWriter sw = new StreamWriter(cst);
sw.Write(data);
sw.Flush();
cst.FlushFinalBlock();
sw.Flush();
return Convert.ToBase64String(ms.GetBuffer(), 0, (int)ms.Length);

}
/// <summary>
/// 解密DES
/// </summary>
/// <param name="data">需要解密的字元串</param>
/// <returns>解密後的字元串</returns>
public static string DecodeDES(string data)
{
byte[] byKey = System.Text.ASCIIEncoding.ASCII.GetBytes(KEY_64);
byte[] byIV = System.Text.ASCIIEncoding.ASCII.GetBytes(IV_64);
byte[] byEnc;
try
{
byEnc = Convert.FromBase64String(data);
}
catch
{
return null;
}

DESCryptoServiceProvider cryptoProvider = new DESCryptoServiceProvider();
MemoryStream ms = new MemoryStream(byEnc);
CryptoStream cst = new CryptoStream(ms, cryptoProvider.CreateDecryptor(byKey, byIV), CryptoStreamMode.Read);
StreamReader sr = new StreamReader(cst);
return sr.ReadToEnd();
}

7. C語言(文件的移位與加密解密)

這道題,並不難,只是樓主,沒有說清,是就字母移位嗎?
但是看你的例子,有不全是。
程序如下:
#include <stdio.h>
#include <stdlib.h>

FILE *source;//源文件
FILE *destination;//目標文件
int key;//密鑰
char file[100];//文件名
void encryption()//加密
{
char ch;
printf("請輸入要加密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch+=key;
fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}

void decrypt()//解密
{
char ch;
printf("請輸入要解密的文件名\n");
scanf("%s",file);
if((source=fopen(file,"r"))==NULL)
{
printf("無法打開文件!\n");
exit(0);
}
printf("請輸入加密後的文件名\n");
scanf("%s",file);
if((destination=fopen(file,"w"))==NULL)
{
printf("無法創建文件!\n");
exit(0);
}
printf("請輸入密鑰\n");
scanf("%d",&key);
ch=fgetc(source);
while(ch!=EOF)
{
if(ch=='\n')
{
fputc(ch,destination);
ch=fgetc(source);
continue;
}
ch-=key;

fputc(ch,destination);
ch=fgetc(source);
}
fclose(source);
fclose(destination);
}

int main()//主函數提供菜單
{
int choice=0;
printf("******************\n");
printf("1 文件加密\n");
printf("2 文件解密\n");
printf("3 退出\n");
printf("******************\n");
printf("請輸入1 2 3選擇操作\n");
scanf("%d",&choice);

switch(choice)
{
case 1:encryption();break;
case 2:decrypt();break;
case 3:break;
}
return 0;
}

8. php代碼怎麼加密最好,不能破解的那種

在使用PHP開發Web應用的中,很多的應用都會要求用戶注冊,而注冊的時候就需要我們對用戶的信息進行處理了,最常見的莫過於就是郵箱和密碼了,本文意在討論對密碼的處理:也就是對密碼的加密處理。
MD5
相信很多PHP開發者在最先接觸PHP的時候,處理密碼的首選加密函數可能就是MD5了,我當時就是這樣的:
$password = md5($_POST["password"]);
上面這段代碼是不是很熟悉?然而MD5的加密方式目前在PHP的江湖中貌似不太受歡迎了,因為它的加密演算法實在是顯得有點簡單了,而且很多破解密碼的站點都存放了很多經過MD5加密的密碼字元串,所以這里我是非常不提倡還在單單使用MD5來加密用戶的密碼的。
SHA256 和 SHA512
其實跟前面的MD5同期的還有一個SHA1加密方式的,不過也是演算法比較簡單,所以這里就一筆帶過吧。而這里即將要說到的SHA256 和 SHA512都是來自於SHA2家族的加密函數,看名字可能你就猜的出來了,這兩個加密方式分別生成256和512比特長度的hash字串。
他們的使用方法如下:
<?php
$password = hash("sha256", $password);
PHP內置了hash()函數,你只需要將加密方式傳給hash()函數就好了。你可以直接指明sha256, sha512, md5, sha1等加密方式。
鹽值
在加密的過程,我們還有一個非常常見的小夥伴:鹽值。對,我們在加密的時候其實會給加密的字元串添加一個額外的字元串,以達到提高一定安全的目的:
<?php
function generateHashWithSalt($password) {$intermediateSalt = md5(uniqid(rand(), true));$salt = substr($intermediateSalt, 0, 6);
return hash("sha256", $password . $salt);}
Bcrypt
如果讓我來建議一種加密方式的話,Bcrypt可能是我給你推薦的最低要求了,因為我會強烈推薦你後面會說到的Hashing API,不過Bcrypt也不失為一種比較不錯的加密方式了。
<?php
function generateHash($password) {
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {$salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);return crypt($password, $salt);
}
}
Bcrypt 其實就是Blowfish和crypt()函數的結合,我們這里通過CRYPT_BLOWFISH判斷Blowfish是否可用,然後像上面一樣生成一個鹽值,不過這里需要注意的是,crypt()的鹽值必須以$2a$或者$2y$開頭,詳細資料可以參考下面的鏈接:
http://www.php.net/security/crypt_blowfish.php更多資料可以看這里:
http://php.net/manual/en/function.crypt.phpPassword Hashing API
這里才是我們的重頭戲,Password Hashing API是PHP 5.5之後才有的新特性,它主要是提供下面幾個函數供我們使用:
password_hash() – 對密碼加密.
password_verify() – 驗證已經加密的密碼,檢驗其hash字串是否一致.
password_needs_rehash() – 給密碼重新加密.
password_get_info() – 返回加密演算法的名稱和一些相關信息.
雖然說crypt()函數在使用上已足夠,但是password_hash()不僅可以使我們的代碼更加簡短,而且還在安全方面給了我們更好的保障,所以,現在PHP的官方都是推薦這種方式來加密用戶的密碼,很多流行的框架比如Laravel就是用的這種加密方式。
<?php
$hash = password_hash($passwod, PASSWORD_DEFAULT);對,就是這么簡單,一行代碼,All done。
PASSWORD_DEFAULT目前使用的就是Bcrypt,所以在上面我會說推薦這個,不過因為Password Hashing API做得更好了,我必須鄭重地想你推薦Password Hashing API。這里需要注意的是,如果你代碼使用的都是PASSWORD_DEFAULT加密方式,那麼在資料庫的表中,password欄位就得設置超過60個字元長度,你也可以使用PASSWORD_BCRYPT,這個時候,加密後字串總是60個字元長度。
這里使用password_hash()你完全可以不提供鹽值(salt)和 消耗值 (cost),你可以將後者理解為一種性能的消耗值,cost越大,加密演算法越復雜,消耗的內存也就越大。當然,如果你需要指定對應的鹽值和消耗值,你可以這樣寫:
<?php
$options = [
'salt' => custom_function_for_salt(), //write your own code to generate a suitable salt'cost' => 12 // the default cost is 10
];
$hash = password_hash($password, PASSWORD_DEFAULT, $options);密碼加密過後,我們需要對密碼進行驗證,以此來判斷用戶輸入的密碼是否正確:
<?php
if (password_verify($password, $hash)) {
// Pass
}
else {
// Invalid
}
很簡單的吧,直接使用password_verify就可以對我們之前加密過的字元串(存在資料庫中)進行驗證了。
然而,如果有時候我們需要更改我們的加密方式,如某一天我們突然想更換一下鹽值或者提高一下消耗值,我們這時候就要使用到password_needs_rehash()函數了:
<?php
if (password_needs_rehash($hash, PASSWORD_DEFAULT, ['cost' => 12])) {// cost change to 12
$hash = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);// don't forget to store the new hash!
}
只有這樣,PHP的Password Hashing API才會知道我們重現更換了加密方式,這樣的主要目的就是為了後面的密碼驗證。
簡單地說一下password_get_info(),這個函數一般可以看到下面三個信息:
algo – 演算法實例
algoName – 演算法名字
options – 加密時候的可選參數
所以,現在就開始用PHP 5.5吧,別再糾結低版本了。
Happy Hacking

9. defaultpasswordencoder md5 是什麼演算法的

介紹MD5加密演算法基本情況MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc發明,經MD2、MD3和MD4發展而來。 Message-Digest泛指位元組串(Message)的Hash變換,就是把一個任意長度的位元組串變換成...

10. 一個簡單的加密演算法:a加密成z,b加密成y,c加密成x。。。 我是個新手,我的程序哪裡錯了,求原因

switch(c[i]){
for(x1='a';x1<'n';x1=x1+1){
case x1 : y1=x1+(25-2*j);break;
}
default :printf("%c",c[i]);
}
這里有問題吧,switch...case語句中間是不能拆開的

閱讀全文

與加密演算法default相關的資料

熱點內容
靈異pdf 瀏覽:617
助劑手冊pdf 瀏覽:427
奧迪a6l如何升級安卓 瀏覽:565
編譯器分配單元 瀏覽:265
投客網用哪個app好 瀏覽:135
米家伺服器怎麼安裝視頻教程 瀏覽:983
什麼是識別符編譯原理 瀏覽:649
pdf圖片識別文字 瀏覽:89
如何更改Tomcat伺服器域名 瀏覽:6
安卓手機怎麼設置一個號碼關機 瀏覽:121
51單片機散件套件 瀏覽:662
為什麼要做app推廣 瀏覽:116
go語言伺服器編程 瀏覽:445
xe伺服器是什麼意思 瀏覽:636
linux查看某個埠佔用 瀏覽:987
打開工作表時文件夾顯示無響應 瀏覽:778
小度編譯的圖片 瀏覽:238
lol怎麼不自動連接伺服器地址 瀏覽:371
自己編譯虛擬幣 瀏覽:360
金壇工頻螺桿壓縮機廠家 瀏覽:684