本文整理汇总了C++中BigInteger::ToRawString方法的典型用法代码示例。如果您正苦于以下问题:C++ BigInteger::ToRawString方法的具体用法?C++ BigInteger::ToRawString怎么用?C++ BigInteger::ToRawString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类BigInteger
的用法示例。
在下文中一共展示了BigInteger::ToRawString方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Verify
bool RSACrypter::Verify(string M, string S)
{
bool IsValid = false;
int BytesInBlock = _KeySize / 8;
while (M.length() % BytesInBlock != 0)
{
M = M + _FillChar;
}
if (S.length() % BytesInBlock != 0)
throw exception("Bad input data: wrong size of chipertext");
int BlocksCount = S.length() / BytesInBlock / DELTA;
string ResM = ""; //M'
string ResBlock = ""; //блок M'
string MesBlock; //блок М
BigInteger ResInt;
BigInteger SignedInt;
for (int i = 0; i < BlocksCount; i++) {
MesBlock = string(S, i*BytesInBlock*DELTA, BytesInBlock*DELTA);
SignedInt = SignedInt.FromRawString(MesBlock);
ResInt = SignedInt.PowAndMod(_E, _N);
ResBlock = ResInt.ToRawString(BytesInBlock);
ResM = ResM + ResBlock;
}
if (ResM == M) IsValid = true;
return IsValid;
}
示例2: Decryt
string RSACrypter::Decryt(string C)
{
int BytesInBlock = _KeySize / 8;
if (C.length() % BytesInBlock != 0)
throw exception("Bad input data: wrong size of chipertext");
int BlocksCount = C.length() / BytesInBlock / DELTA;
string Res = "";
string Dec = "";
string Block;
BigInteger DecInt;
BigInteger ChiperInt;
for (int i = 0; i < BlocksCount; i++) {
Block = string(C, i*BytesInBlock*DELTA, BytesInBlock*DELTA);
ChiperInt = ChiperInt.FromRawString(Block);
DecInt = ChiperInt.PowAndMod(_D, _N);
Dec = DecInt.ToRawString(BytesInBlock);
Res = Res + Dec;
}
return Res;
}
示例3: Sign
string RSACrypter::Sign(string M)
{
int BytesInBlock = _KeySize / 8;
while (M.length() % BytesInBlock != 0)
{
M = M + _FillChar;
}
string Res = "";
string Signed = "";
string Block;
BigInteger SignedInt;
BigInteger MessageInt;
int BlocksCount = M.length() / BytesInBlock;
for (int i = 0; i < BlocksCount; i++) {
Block = string(M, i*BytesInBlock, BytesInBlock);
MessageInt = MessageInt.FromRawString(Block);
SignedInt = MessageInt.PowAndMod(_D, _N);
Signed = SignedInt.ToRawString(BytesInBlock*DELTA);
Res = Res + Signed;
}
return Res;
}