我如何在C#中编写可逆混洗算法,该算法使用密钥进行混洗并可以反转为原始状态?
例如,我有一个字符串:"Hello world",我怎么能将它洗牌以便以后我能够将洗牌后的字符串反转回"Hello world".
有人可以用C#编码CRC64反向算法吗?我无法编码,无法理解任何事情.谢谢,
我从C++复制了CRC64校验和代码并将其转换为C#.NET.整个代码显示如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CRC64
{
public class cCRC64
{
public UInt64[] crc64_table = {
0x0000000000000000, 0x42F0E1EBA9EA3693,
0x85E1C3D753D46D26, 0xC711223CFA3E5BB5,
0x493366450E42ECDF, 0x0BC387AEA7A8DA4C,
0xCCD2A5925D9681F9, 0x8E224479F47CB76A,
0x9266CC8A1C85D9BE, 0xD0962D61B56FEF2D,
0x17870F5D4F51B498, 0x5577EEB6E6BB820B,
0xDB55AACF12C73561, 0x99A54B24BB2D03F2,
0x5EB4691841135847, 0x1C4488F3E8F96ED4,
0x663D78FF90E185EF, 0x24CD9914390BB37C,
0xE3DCBB28C335E8C9, 0xA12C5AC36ADFDE5A,
0x2F0E1EBA9EA36930, 0x6DFEFF5137495FA3,
0xAAEFDD6DCD770416, 0xE81F3C86649D3285,
0xF45BB4758C645C51, 0xB6AB559E258E6AC2,
0x71BA77A2DFB03177, 0x334A9649765A07E4,
0xBD68D2308226B08E, 0xFF9833DB2BCC861D,
0x388911E7D1F2DDA8, 0x7A79F00C7818EB3B,
0xCC7AF1FF21C30BDE, 0x8E8A101488293D4D,
0x499B3228721766F8, 0x0B6BD3C3DBFD506B,
0x854997BA2F81E701, 0xC7B97651866BD192,
0x00A8546D7C558A27, 0x4258B586D5BFBCB4,
0x5E1C3D753D46D260, 0x1CECDC9E94ACE4F3,
0xDBFDFEA26E92BF46, 0x990D1F49C77889D5,
0x172F5B3033043EBF, 0x55DFBADB9AEE082C,
0x92CE98E760D05399, 0xD03E790CC93A650A,
0xAA478900B1228E31, 0xE8B768EB18C8B8A2,
0x2FA64AD7E2F6E317, 0x6D56AB3C4B1CD584,
0xE374EF45BF6062EE, 0xA1840EAE168A547D,
0x66952C92ECB40FC8, 0x2465CD79455E395B,
0x3821458AADA7578F, 0x7AD1A461044D611C, …Run Code Online (Sandbox Code Playgroud) 长Ascii字符串文本可能会或可能不会被压缩并压缩成ascii"校验和"的哈希类型,使用复杂的数学公式/算法.就像可以压缩的空气一样.
为了将兆字节的ascii文本压缩成128个左右的字节,通过混洗,然后将单个"字节"的新"模式"从第一个转到最后一个.当我们解压缩它时,首先提取最后一个字符,然后我们继续使用公式和从最后一个到第一个的顺序键进行解压缩.必须准确知道顺序键以及最后和第一个字节,包括完全更新的最终编译字符串以及压缩的总字节数.
这是我正在思考的terra压缩.这可能吗?你能解释一下这些例子 我正在研究这个理论,这是我自己的想法.