亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? blowfish.h

?? 很好的文件加密程序,用vc++編的,適合初學者!
?? H
字號:

//Blowfish.h

#ifndef __BLOWFISH_H__
#define __BLOWFISH_H__

#include "Method.h"
#include <memory>

//Typical DISCLAIMER:
//The code in this project is Copyright (C) 2003 by George Anescu. You have the right to
//use and distribute the code in any way you see fit as long as this paragraph is included
//with the distribution. No warranties or claims are made as to the validity of the
//information and code contained herein, so use it at your own risk.

////////////////////////////////////////////////////////////////////////////
///
// Blowfish.h Header File
//
//    BLOWFISH ENCRYPTION ALGORITHM
//
//    Encryption and Decryption of Byte Strings using the Blowfish Encryption Algorithm.
//    Blowfish is a block cipher that encrypts data in 8-byte blocks. The algorithm consists
//    of two parts: a key-expansion part and a data-ancryption part. Key expansion converts a
//    variable key of at least 1 and at most 56 bytes into several subkey arrays totaling
//    4168 bytes. Blowfish has 16 rounds. Each round consists of a key-dependent permutation,
//    and a key and data-dependent substitution. All operations are XORs and additions on 32-bit words.
//    The only additional operations are four indexed array data lookups per round.
//    Blowfish uses a large number of subkeys. These keys must be precomputed before any data
//    encryption or decryption. The P-array consists of 18 32-bit subkeys: P0, P1,...,P17.
//    There are also four 32-bit S-boxes with 256 entries each: S0,0, S0,1,...,S0,255;
//    S1,0, S1,1,...,S1,255; S2,0, S2,1,...,S2,255; S3,0, S3,1,...,S3,255;
//
//    The Electronic Code Book (ECB), Cipher Block Chaining (CBC) and Cipher Feedback modes
//    are used:
//
//    In ECB mode if the same block is encrypted twice with the same key, the resulting
//    ciphertext blocks are the same.
//
//    In CBC Mode a ciphertext block is obtained by first xoring the
//    plaintext block with the previous ciphertext block, and encrypting the resulting value.
//
//    In CFB mode a ciphertext block is obtained by encrypting the previous ciphertext block
//    and xoring the resulting value with the plaintext
//
//    The previous ciphertext block is usually stored in an Initialization Vector (IV).
//    An Initialization Vector of zero is commonly used for the first block, though other
//    arrangements are also in use.

/*
http://www.counterpane.com/vectors.txt
Test vectors by Eric Young.  These tests all assume Blowfish with 16
rounds.

All data is shown as a hex string with 012345 loading as
data[0]=0x01;
data[1]=0x23;
data[2]=0x45;
ecb test data (taken from the DES validation tests)

key bytes               clear bytes             cipher bytes
0000000000000000        0000000000000000        4EF997456198DD78
FFFFFFFFFFFFFFFF        FFFFFFFFFFFFFFFF        51866FD5B85ECB8A
3000000000000000        1000000000000001        7D856F9A613063F2  ???
1111111111111111        1111111111111111        2466DD878B963C9D
0123456789ABCDEF        1111111111111111        61F9C3802281B096
1111111111111111        0123456789ABCDEF        7D0CC630AFDA1EC7
0000000000000000        0000000000000000        4EF997456198DD78
FEDCBA9876543210        0123456789ABCDEF        0ACEAB0FC6A0A28D
7CA110454A1A6E57        01A1D6D039776742        59C68245EB05282B
0131D9619DC1376E        5CD54CA83DEF57DA        B1B8CC0B250F09A0
07A1133E4A0B2686        0248D43806F67172        1730E5778BEA1DA4
3849674C2602319E        51454B582DDF440A        A25E7856CF2651EB
04B915BA43FEB5B6        42FD443059577FA2        353882B109CE8F1A
0113B970FD34F2CE        059B5E0851CF143A        48F4D0884C379918
0170F175468FB5E6        0756D8E0774761D2        432193B78951FC98
43297FAD38E373FE        762514B829BF486A        13F04154D69D1AE5
07A7137045DA2A16        3BDD119049372802        2EEDDA93FFD39C79
04689104C2FD3B2F        26955F6835AF609A        D887E0393C2DA6E3
37D06BB516CB7546        164D5E404F275232        5F99D04F5B163969
1F08260D1AC2465E        6B056E18759F5CCA        4A057A3B24D3977B
584023641ABA6176        004BD6EF09176062        452031C1E4FADA8E
025816164629B007        480D39006EE762F2        7555AE39F59B87BD
49793EBC79B3258F        437540C8698F3CFA        53C55F9CB49FC019
4FB05E1515AB73A7        072D43A077075292        7A8E7BFA937E89A3
49E95D6D4CA229BF        02FE55778117F12A        CF9C5D7A4986ADB5
018310DC409B26D6        1D9D5C5018F728C2        D1ABB290658BC778
1C587F1C13924FEF        305532286D6F295A        55CB3774D13EF201
0101010101010101        0123456789ABCDEF        FA34EC4847B268B2
1F1F1F1F0E0E0E0E        0123456789ABCDEF        A790795108EA3CAE
E0FEE0FEF1FEF1FE        0123456789ABCDEF        C39E072D9FAC631D
0000000000000000        FFFFFFFFFFFFFFFF        014933E0CDAFF6E4
FFFFFFFFFFFFFFFF        0000000000000000        F21E9A77B71C49BC
0123456789ABCDEF        0000000000000000        245946885754369A
FEDCBA9876543210        FFFFFFFFFFFFFFFF        6B5C5A9C5D9E0A5A

set_key test data
data[8]= FEDCBA9876543210
c=F9AD597C49DB005E k[ 1]=F0
c=E91D21C1D961A6D6 k[ 2]=F0E1
c=E9C2B70A1BC65CF3 k[ 3]=F0E1D2
c=BE1E639408640F05 k[ 4]=F0E1D2C3
c=B39E44481BDB1E6E k[ 5]=F0E1D2C3B4
c=9457AA83B1928C0D k[ 6]=F0E1D2C3B4A5
c=8BB77032F960629D k[ 7]=F0E1D2C3B4A596
c=E87A244E2CC85E82 k[ 8]=F0E1D2C3B4A59687
c=15750E7A4F4EC577 k[ 9]=F0E1D2C3B4A5968778
c=122BA70B3AB64AE0 k[10]=F0E1D2C3B4A596877869
c=3A833C9AFFC537F6 k[11]=F0E1D2C3B4A5968778695A
c=9409DA87A90F6BF2 k[12]=F0E1D2C3B4A5968778695A4B
c=884F80625060B8B4 k[13]=F0E1D2C3B4A5968778695A4B3C
c=1F85031C19E11968 k[14]=F0E1D2C3B4A5968778695A4B3C2D
c=79D9373A714CA34F k[15]=F0E1D2C3B4A5968778695A4B3C2D1E ???
c=93142887EE3BE15C k[16]=F0E1D2C3B4A5968778695A4B3C2D1E0F
c=03429E838CE2D14B k[17]=F0E1D2C3B4A5968778695A4B3C2D1E0F00
c=A4299E27469FF67B k[18]=F0E1D2C3B4A5968778695A4B3C2D1E0F0011
c=AFD5AED1C1BC96A8 k[19]=F0E1D2C3B4A5968778695A4B3C2D1E0F001122
c=10851C0E3858DA9F k[20]=F0E1D2C3B4A5968778695A4B3C2D1E0F00112233
c=E6F51ED79B9DB21F k[21]=F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344
c=64A6E14AFD36B46F k[22]=F0E1D2C3B4A5968778695A4B3C2D1E0F001122334455
c=80C7D7D45A5479AD k[23]=F0E1D2C3B4A5968778695A4B3C2D1E0F00112233445566
c=05044B62FA52D080 k[24]=F0E1D2C3B4A5968778695A4B3C2D1E0F0011223344556677

chaining mode test data
key[16]   = 0123456789ABCDEFF0E1D2C3B4A59687
iv[8]     = FEDCBA9876543210
data[29]  = "7654321 Now is the time for " (includes trailing '\0')
data[29]  = 37363534333231204E6F77206973207468652074696D6520666F722000
cbc cipher text
cipher[32]= 6B77B4D63006DEE605B156E27403979358DEB9E7154616D959F1652BD5FF92CC
cfb64 cipher text cipher[29]= 
E73214A2822139CAF26ECF6D2EB9E76E3DA3DE04D1517200519D57A6C3 
ofb64 cipher text cipher[29]= 
E73214A2822139CA62B343CC5B65587310DD908D0C241B2263C2CF80DA

*/

//Block Structure
struct SBlock
{
	//Constructors
	SBlock(unsigned int l=0, unsigned int r=0) : m_uil(l), m_uir(r) {}
	//Copy Constructor
	SBlock(const SBlock& roBlock) : m_uil(roBlock.m_uil), m_uir(roBlock.m_uir) {}
	SBlock& operator^=(SBlock& b) { m_uil ^= b.m_uil; m_uir ^= b.m_uir; return *this; }
	unsigned int m_uil, m_uir;
};

class CBlowFish : public IMethod
{
private:
	enum { DATA_LEN=384, BUFF_LEN=1024 };
	enum { BLOCK_SIZE=8 };
	enum { KEY_LENGTH=56 };

public:
	//CONSTRUCTOR
	CBlowFish();
	//Initialize the P and S boxes for a given Key
	void Initialize(char const* keydata, int keydatalength, SBlock const& roChain = sm_chain0,
		int iMode=ECB, int iPadding=ZEROES);

	//CBlowFish(unsigned char* ucKey, size_t n, ;

	//Resetting the Initialization Vector
	void ResetChain();
	//Encryption for a string of chars
	void Encrypt(char const* in, char* result, size_t n);
	//Decryption for a string of chars
	void Decrypt(char const* in, char* result, size_t n);
	//Encryption for a File
	void EncryptFile(string const& rostrFileIn, string const& rostrFileOut);
	//Decryption for a File
	void DecryptFile(string const& rostrFileIn, string const& rostrFileOut);

//Private Functions
private:
	unsigned int F(unsigned int ui);
	void Encrypt(SBlock&);
	void Decrypt(SBlock&);
	//Compute Signature
	void Signature(char* pcSig);
	//Key
	auto_ptr<char> m_apKey;
	//The Initialization Vector, by default {0, 0}
	SBlock m_oChain0;
	SBlock m_oChain;
	unsigned int m_auiP[18];
	unsigned int m_auiS[4][256];
	static const unsigned int scm_auiInitP[18];
	static const unsigned int scm_auiInitS[4][256];

public:
	//Null chain
	static const SBlock sm_chain0;
};

//Extract low order byte
inline unsigned char Byte(unsigned int ui)
{
	return (unsigned char)(ui & 0xff);
}

//Function F
inline unsigned int CBlowFish::F(unsigned int ui)
{
	return ((m_auiS[0][Byte(ui>>24)] + m_auiS[1][Byte(ui>>16)]) ^ m_auiS[2][Byte(ui>>8)]) + m_auiS[3][Byte(ui)];
}

#endif // __BLOWFISH_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av一区二区不卡| 国产成人精品免费网站| 一区二区三区精品视频| 国产精品久久久久久久第一福利| 中文字幕成人在线观看| 欧美激情综合五月色丁香| 中文字幕电影一区| 中文字幕五月欧美| 亚洲自拍另类综合| 日日骚欧美日韩| 久久精工是国产品牌吗| 国产一区二区中文字幕| 成人美女在线观看| 色国产综合视频| 制服丝袜日韩国产| 久久先锋影音av鲁色资源 | 亚洲精品成人天堂一二三| 亚洲视频免费观看| 亚洲一区二区三区精品在线| 免费高清成人在线| 国产成人丝袜美腿| 在线欧美小视频| 日韩美一区二区三区| 国产精品无人区| 亚洲国产精品一区二区久久 | 亚洲18影院在线观看| 七七婷婷婷婷精品国产| 国产高清在线精品| 精品1区2区3区| 久久久久久99精品| 一区二区三区四区视频精品免费| 日韩电影网1区2区| a级高清视频欧美日韩| 91.com视频| 亚洲视频一二区| 精品亚洲porn| 91国偷自产一区二区开放时间 | 26uuu久久天堂性欧美| 亚洲美女淫视频| 国产专区欧美精品| 欧美网站一区二区| 中文乱码免费一区二区 | 精品国产麻豆免费人成网站| 亚洲桃色在线一区| 久久99精品久久久久| 色www精品视频在线观看| 精品久久久久久亚洲综合网| 亚洲福利视频一区| 91香蕉国产在线观看软件| 欧美va亚洲va国产综合| 亚洲一二三区在线观看| 99久久免费视频.com| 精品成人私密视频| 男女性色大片免费观看一区二区| 99久久精品费精品国产一区二区| 精品毛片乱码1区2区3区| 亚洲.国产.中文慕字在线| 99久久久无码国产精品| 日本一区二区久久| 国内精品久久久久影院一蜜桃| 欧美日韩精品一区视频| 亚洲免费在线视频一区 二区| 国产精品自拍av| 日韩欧美电影一二三| 日韩激情在线观看| 欧美精品 日韩| 天天综合天天综合色| 欧美亚洲精品一区| 亚洲午夜精品网| 欧美性生活大片视频| 一区二区视频在线| 在线视频中文字幕一区二区| 亚洲色图欧洲色图婷婷| 99国内精品久久| 中文字幕亚洲一区二区av在线| 成人小视频免费在线观看| 久久一区二区三区国产精品| 国产毛片精品视频| 日本一区二区视频在线观看| 粉嫩aⅴ一区二区三区四区五区| 国产女同性恋一区二区| 成人综合婷婷国产精品久久蜜臀 | 性做久久久久久久免费看| 欧美天堂一区二区三区| 午夜视频一区二区三区| 欧美一区二区三区免费观看视频| 蜜桃传媒麻豆第一区在线观看| 欧美一区二区高清| 国产乱码精品1区2区3区| 欧美高清在线视频| 色婷婷av一区二区三区之一色屋| 亚洲影院理伦片| 日韩欧美在线123| 久色婷婷小香蕉久久| 国产亚洲美州欧州综合国| 成人福利在线看| 一区二区三区成人在线视频| 在线综合亚洲欧美在线视频| 久久99深爱久久99精品| 国产欧美日韩视频一区二区 | 裸体歌舞表演一区二区| 国产人成一区二区三区影院| 色一情一乱一乱一91av| 人人狠狠综合久久亚洲| 国产精品美女久久久久久| 在线视频你懂得一区二区三区| 日本美女一区二区三区视频| 欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩在线直播| 高清在线观看日韩| 石原莉奈在线亚洲三区| 国产日产欧美一区二区三区| 欧美在线你懂得| 国产精品1区2区3区| 亚洲福利视频一区二区| 欧美国产一区在线| 欧美一区二区视频在线观看2020| 成人激情免费电影网址| 日韩精品1区2区3区| 亚洲三级理论片| 久久久久久久综合日本| 欧美精品777| 色香蕉久久蜜桃| 成人精品视频一区二区三区尤物| 日韩精品国产精品| 亚洲精品欧美激情| 国产欧美日韩三区| 精品三级av在线| 欧美日韩一区二区欧美激情| 成人aa视频在线观看| 久久99国产精品久久99果冻传媒| 亚洲精品ww久久久久久p站| 久久久蜜桃精品| 日韩午夜在线影院| 欧美男人的天堂一二区| 91精品1区2区| 色偷偷88欧美精品久久久| 成人网在线播放| 国产精品影视天天线| 久久精品国产色蜜蜜麻豆| 亚洲福利一区二区| 亚洲综合网站在线观看| 亚洲精品一卡二卡| 亚洲色图清纯唯美| 亚洲女同女同女同女同女同69| 中文字幕免费不卡| 久久精品男人天堂av| 久久久久久亚洲综合| 久久亚洲捆绑美女| 久久婷婷久久一区二区三区| 欧美r级电影在线观看| 日韩免费高清av| 精品日产卡一卡二卡麻豆| 日韩免费电影一区| 久久久久久**毛片大全| 久久综合色婷婷| 国产日韩欧美在线一区| 国产精品欧美久久久久一区二区 | 亚洲国产成人91porn| 一区二区欧美精品| 亚洲1区2区3区视频| 日本系列欧美系列| 韩国欧美一区二区| 东方aⅴ免费观看久久av| 99天天综合性| 欧美在线一二三| 日韩欧美中文字幕一区| 精品对白一区国产伦| 国产欧美精品在线观看| 最新高清无码专区| 亚洲国产一二三| 精品一区二区在线视频| 成人永久免费视频| 91精品1区2区| 日韩一区二区三区精品视频| 国产日本欧洲亚洲| 亚洲国产欧美另类丝袜| 久久国产三级精品| 91色九色蝌蚪| 欧美一区二区福利视频| 国产精品区一区二区三| 午夜婷婷国产麻豆精品| 国产白丝网站精品污在线入口| 色狠狠一区二区三区香蕉| 日韩一区二区三区四区| 国产精品久久久久久久久快鸭 | 精品电影一区二区三区| 国产精品国产自产拍高清av | 波多野结衣的一区二区三区| 欧美色视频一区| 久久久久国产成人精品亚洲午夜| 亚洲免费高清视频在线| 韩国三级在线一区| 欧美色欧美亚洲另类二区| 久久一区二区三区四区| 一区二区三区不卡视频| 国产成人在线电影| 91精品国产色综合久久不卡蜜臀 | 国产成人综合网站| 欧美日韩另类一区|