虽然在.net框架中很好地规划了双方公钥加密,但是n-party对我很关注.例如,保护两方视频会议.沟通很容易:
1)每一方生成会话特定的RSA密钥对,并获得由受信任的机构(即可信服务器)签名的公钥.2)每个派对交换密钥使用ECDiffieHellmanCng
连接现在都是真实和安全的(认为他们使用Vista/W7).
现在为此通信添加第三个参与者将无法工作,因为密钥交换算法旨在仅从2个公钥导出共享密钥(特别是使用.NET和BouncyCastle).所以问题是,你将如何实现一个仍然是真实的(即在中间攻击中对人有抵抗)和安全(即安全的窃听)的n方公钥加密模式.
编辑:目前的想法如下,我将继续实施最流行的一个作为NBusy.Communicator库的一部分:
编辑2:我将使用"n-Party Diffie Hellman"算法,类似于此处描述的算法,但有一些修改:http://www.codeproject.com/KB/cs/diffy_helman.aspx
始终签署可执行文件(exe,dll,ocx等)是一种很好的做法.另一方面,对于开源项目,可能会考虑忽视所有其他开发人员对项目的贡献.
这对我来说是一个非常道德的困境,我希望从处于类似情况的人或者为开源项目做出贡献的人那里听到更多关于此的意见.
我想请注意,这个问题是针对使用.NET 4用C#编写的开源项目,因此当用户单击可执行文件时,系统会提示他或她发出警告,指出该文件来自不受信任的发布者,如果它没有经过数字签名.
顺便说一下,程序集都已经具有强命名(签名),但它们尚未进行数字签名(即使用Verisign代码签名证书).
我有System.Window.Form.CheckBox数据绑定的问题.我有代码:
checkBox1.DataBindings.Add("Checked", _movementsBindingSource, "Moved", true);
Run Code Online (Sandbox Code Playgroud)
它工作,但我想反转checkBox1.Checked.如果Moved为true,则checked = false.你能帮我解决这个问题吗?
我目前正在尝试使用FileSystemWatcher类排除目录,尽管我已经使用过:
FileWatcher.Filter = "C:\\$Recycle.Bin";
Run Code Online (Sandbox Code Playgroud)
和
FileWatcher.Filter = "$Recycle.Bin";
Run Code Online (Sandbox Code Playgroud)
编译好了,但是当我尝试这个时没有显示结果.
如果我取出过滤器,所有文件加载正常,代码如下:
static void Main(string[] args)
{
string DirPath = "C:\\";
FileSystemWatcher FileWatcher = new FileSystemWatcher(DirPath);
FileWatcher.IncludeSubdirectories = true;
FileWatcher.Filter = "*.exe";
// FileWatcher.Filter = "C:\\$Recycle.Bin";
// FileWatcher.Changed += new FileSystemEventHandler(FileWatcher_Changed);
FileWatcher.Created += new FileSystemEventHandler(FileWatcher_Created);
// FileWatcher.Deleted += new FileSystemEventHandler(FileWatcher_Deleted);
// FileWatcher.Renamed += new RenamedEventHandler(FileWatcher_Renamed);
FileWatcher.EnableRaisingEvents = true;
Console.ReadKey();
}
Run Code Online (Sandbox Code Playgroud) 我只是在学习 javascript,所以我认为这相对简单,但它已经让我烦恼了一段时间。
我有一个函数,它只显示我从 AJAX 响应调用的一些文本。这是我的代码。
if(this.responseText != null)
{
var text = "<ul>";
var object = eval("(" + this.responseText + ")");
var track;
for (var i = 0; i < object.length; i++)
{
track = object[i];
text += "<li><img src=\"" + track.artwork_url + "\"/>";
text += track.title;
text += "<ul><li><a href=\"#\" onclick=\"playTrack(" + track + ");return false;\">Play</a></li>"
text += "<li><a href=\"" + track.download_url + "?client_id=" + clientId + "\">Download</a></li></ul>"
text += "</li>";
}
text += "</ul>";
document.getElementById("content").innerHTML = text;
} …
Run Code Online (Sandbox Code Playgroud) 我最近遇到了这样一个事实:在使用C#/ Mono中的某些概念时,我需要指定"不安全"选项.我不仅需要在我的代码中指定选项,我还必须在编译时指定它,这会调用"此代码本质上不安全且使用风险"的感觉.这里奇怪的是DllImport不需要不安全标志,所以我可以在我的"安全代码"中创建我想要的段错误.有没有理由避免我忽略的不安全代码?
我已经在 C# 中实现了一个 Windows 服务。注册有关 Windows 服务中发生的异常的信息的最佳方法是什么?使用 EventLoger 类是个好主意吗?或者我应该实现我自己的记录器并将异常信息写入一些文本文件。
任何帮助表示赞赏。
谢谢你。
我正在使用ASHX处理程序,我希望处理程序检查Session!= null.
if (context.Session["Username"] != null)
Run Code Online (Sandbox Code Playgroud)
我得到这个错误指向这一行:
System.NullReferenceException:未将对象引用设置为对象的实例.
有什么问题?
这是一个我要求理解而不是找出问题的问题.考虑以下两点:
[Flags]
public enum Flags
{
NONE = 0x0,
PASSUPDATE = 0x1,
PASSRENDER = 0x2,
DELETE = 0x4,
ACCEPTINPUT = 0x8,
FADE_IN = 0x10,
FADE_OUT = 0x20,
FADE_OUT_COMPLETE = 0x40
}
[Flags]
public enum Flags
{
NONE = 0x0,
PASSUPDATE,
PASSRENDER,
DELETE,
ACCEPTINPUT,
FADE_IN ,
FADE_OUT,
FADE_OUT_COMPLETE
}
Run Code Online (Sandbox Code Playgroud)
如果我使用后一个枚举检查某些东西,有时会有重叠(我认为类似的东西DELETE
被解释为PASSUPDATE | PASSRENDER
,而在第一个例子中,每个条目都独立于另一个条目(即DELETE
仅DELETE
使用不同的组合进行证明)一组标志).
我有一个程序打开一个浏览器窗口到某个文件夹,但我想在浏览器窗口关闭后立即执行操作,但如果我使用以下代码:
Process proc = Process.Start("explorer.exe", "D:\\");
proc.WaitForExit();
Run Code Online (Sandbox Code Playgroud)
它根据需要打开资源管理器窗口,但WaitForExit命令没有任何效果,它只是直接通过它.
是否有一种不同的方式打开资源管理器窗口,当用户关闭时,它将能够让我知道?
c# ×9
.net ×4
windows ×2
ashx ×1
authenticode ×1
bit ×1
data-binding ×1
encryption ×1
enums ×1
exception ×1
explorer ×1
handler ×1
javascript ×1
json ×1
logging ×1
mono ×1
null ×1
open-source ×1
process ×1
rsa ×1
security ×1
unsafe ×1
winforms ×1