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