我有一个要求修改我现有的应用程序,以使用特定的密钥(消息头中提供的密钥)来计算消息正文的SHA256哈希(基本上是一个大字符串 )。
但是,在.Net SHA256类(例如System.Security.Cryptography.SHA256Managed)中,没有一个可以找到对Key属性或类似内容的引用。
有谁知道如何在.Net中执行此操作?(理想情况下,必须是应用程序针对的.Net3.5。)
TIA
我正在尝试在大量文本文件中查找一些内容,并且我希望输出位于文件中,以便我可以闲暇时阅读它:
grep -i 'alter table' *.sql >> tables.txt
Run Code Online (Sandbox Code Playgroud)
grep(这是 Gnu 工具的 Windows 版本)在 >> 处抱怨。我已经尝试过管道和所有其他方法,但也没有定义输出文件的选项。
有任何想法吗?
我有一个带有入口方法的类"Worker"
internal void Run()
{
//do stuff...
}
Run Code Online (Sandbox Code Playgroud)
我有一个用于测试的子类("TestWorker:Worker")和一个入口方法
internal void Run(object aParam)
{
//do something with aParam, then..
Run();
}
Run Code Online (Sandbox Code Playgroud)
我有一个测试应用程序,它在一个新线程中启动TestWorker实例,
Worker worker;
Thread workerThread;
...
worker = new TestWorker();
workerThread = new Thread(new ParameterizedThreadStart(worker.Run));
workerThread.Start("something");
Run Code Online (Sandbox Code Playgroud)
这将无法编译,编译器报告无法找到参数化委托(在我的子类中).我可以通过在Worker类中声明一个虚拟的虚拟Run(object)方法来解决这个问题,这样我的TestWorker.Run(对象)会覆盖它,但是恕我直言,这是一个不优雅的解决方案,所以为什么我必须这样做呢?它是编译器的特质,还是我在逻辑上做错了什么?
我有这个代码构造,每个命名空间部分都在同一个项目中的一个单独的文件中(和相同的项目文件夹):
namespace mynamespace
{
public partial class Worker
{
private ILog log = /*instantiate a logger*/;
}
}
Run Code Online (Sandbox Code Playgroud)
并在第二个文件中
namespace mynamespace
{
public partial class Worker
{
private void DoStuff()
{
log.Info("a message");
}
}
}
Run Code Online (Sandbox Code Playgroud)
问题是它不会编译,因为在第二个文件中VS2008编译器抱怨"当前上下文中不存在名称'log'"
必须将Log声明为public才能编译,这是一个惊喜.我错过了什么吗?
我正在开发一个支持Oracle,Sql Server和Informix作为数据存储库的应用程序(.Net).Informix的一个问题是一个表(这是遗留的东西)有一个2048个字符的主键,而Informix不允许这个宽度的PK.因此,我的初始解决方案是让应用程序从键值派生MD5值,并在插入或查找数据时将其用作主键.好吧,这有效,但让我立即"升级"现有数据库中的数据问题,由于各种原因必须通过Sql脚本完成.遗憾的是,Informix没有内置的MD5功能,因此我很难编写一个Sql脚本来创建新的PK列并从现有数据中填充它.
所以我的问题是:任何人都可以建议一种更好的方法来显着压缩长字符串值,这样可以避免这个问题吗?