Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用BouncyCastle实现TEA算法_C#_Encryption_Bouncycastle - Fatal编程技术网

C# 用BouncyCastle实现TEA算法

C# 用BouncyCastle实现TEA算法,c#,encryption,bouncycastle,C#,Encryption,Bouncycastle,我试着改编Håvard Stranden的例子(http://ox.no/posts/rsa-using-bouncycastle)将使用BouncyCastle的RSA算法转换为TEA算法,同时使用BouncyCastle附带的示例,我编写了以下代码来加密我的字符串: byte[] data = Encoding.UTF8.GetBytes("This is an encoding test!!!..."); TeaEngine e = new TeaEngine(); e.Init(tru

我试着改编Håvard Stranden的例子(http://ox.no/posts/rsa-using-bouncycastle)将使用BouncyCastle的RSA算法转换为TEA算法,同时使用BouncyCastle附带的示例,我编写了以下代码来加密我的字符串:

byte[] data = Encoding.UTF8.GetBytes("This is an encoding test!!!...");

TeaEngine e = new TeaEngine();
e.Init(true, new KeyParameter(Encoding.UTF8.GetBytes("MyPassword")));

int blockSize = e.GetBlockSize();

byte[] outBytes = new byte[data.Length];

List<byte> output = new List<byte>();
for (int chunkPosition = 0; chunkPosition < data.Length; chunkPosition += blockSize)
{
    int chunkSize = Math.Min(blockSize, data.Length - (chunkPosition * blockSize));
    if (e.IsPartialBlockOkay)
    {
            e.ProcessBlock(data, chunkPosition, outBytes, chunkPosition);
    }
    else
    {
            e.ProcessBlock(data, chunkPosition, outBytes, chunkPosition);
    }
}

Console.WriteLine("Encrypted: " + Encoding.UTF8.GetString(output.ToArray()));
byte[]data=Encoding.UTF8.GetBytes(“这是一个编码测试!!!…”;
TeaEngine e=新的TeaEngine();
e、 Init(true,新的KeyParameter(Encoding.UTF8.GetBytes(“MyPassword”));
int blockSize=e.GetBlockSize();
byte[]outBytes=新字节[data.Length];
列表输出=新列表();
for(int-chunkPosition=0;chunkPosition
但我总是会出错。有没有关于如何实施的想法

提前谢谢

编辑:很抱歉没有发布错误日志,但我在晚些时候发布了它,并且忘记了它

下面是:
在e.Init(true,新的键参数(Encoding.UTF8.GetBytes(“MyPassword”));我得到一个“索引超出了数组的边界。”

TEA使用128位密钥,即16字节。使用16字节长的密码(或使用密钥派生函数从较短的密码中获取16字节的密钥):


你到底为什么不在问题中包含你所遇到的实际错误?我们应该读懂你的心思吗?我只在周二和周四读懂你的心思。这是工会的事。
e.Init(true, new KeyParameter(Encoding.UTF8.GetBytes("MyPassword123456")));