当前位置: 首页>>代码示例>>C++>>正文


C++ BigInteger::FromRawString方法代码示例

本文整理汇总了C++中BigInteger::FromRawString方法的典型用法代码示例。如果您正苦于以下问题:C++ BigInteger::FromRawString方法的具体用法?C++ BigInteger::FromRawString怎么用?C++ BigInteger::FromRawString使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在BigInteger的用法示例。


在下文中一共展示了BigInteger::FromRawString方法的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;
}
开发者ID:Guitarman245,项目名称:lab5,代码行数:30,代码来源:RSA.cpp

示例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;
}
开发者ID:Guitarman245,项目名称:lab5,代码行数:22,代码来源:RSA.cpp

示例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;
}
开发者ID:Guitarman245,项目名称:lab5,代码行数:23,代码来源:RSA.cpp


注:本文中的BigInteger::FromRawString方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。