⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 symkey.cpp

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 CPP
字号:
/************************************************** SymmetricKey Source File                       ** (C) 1999-2002 The Botan Project                **************************************************/#include <botan/symkey.h>#include <botan/hex.h>#include <botan/rng.h>namespace Botan {/************************************************** Create a SymmetricKey from a byte string       **************************************************/void SymmetricKey::change(const byte in[], u32bit n)   {   key.create(n);   key.copy(in, n);   }/************************************************** Create a SymmetricKey from RNG output          **************************************************/void SymmetricKey::change(u32bit length)   {   key.create(length);   Global_RNG::randomize(key, length);   }/************************************************** Create a SymmeticKey from a hex string         **************************************************/void SymmetricKey::change(const std::string& hex_string)   {   SecureVector<byte> hex;   for(u32bit j = 0; j != hex_string.length(); j++)      if(Hex_Decoder::is_valid(hex_string[j]))         hex.append(hex_string[j]);   if(hex.size() % 2 != 0)      throw Invalid_Argument("SymmeticKey: hex string must encode full bytes");   key.create(hex.size() / 2);   for(u32bit j = 0; j != key.size(); j++)      key[j] = Hex_Decoder::decode(hex.ptr() + 2*j);   }/************************************************** XOR Operation for SymmetricKeys                **************************************************/SymmetricKey& SymmetricKey::operator^=(const SymmetricKey& k)   {   if(&k == this) { key.clear(); return (*this); }   xor_buf(key.ptr(), k, std::min(length(), k.length()));   return (*this);   }/************************************************** XOR Operation for SymmetricKeys                **************************************************/SymmetricKey operator^(const SymmetricKey& k1, const SymmetricKey& k2)   {   SecureVector<byte> ret(std::max(k1.length(), k2.length()));   ret.copy(k1, k1.length());   xor_buf(ret, k2, k2.length());   return SymmetricKey(ret);   }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -