Tag: c#

在C#中创建ASN1编码签名以发送到Java

我有私人/公共安全证书。 我的Java同行拥有公钥。 我需要获取一个字符串,对其进行签名,然后将其发送到Java,然后validation数据和签名。 微软和世界其他地方如何对数据进行编码/签名似乎存在一个众所周知的问题,即处理字节的方式。 众所周知,我无法找到解决方案。 如果他们拿走我的字符串和私钥,他们显然可以正确签名并validation它。 如果我拿走我的字符串,我可以在.Net中签名并validation它。 我已经看到了一系列从ASN1转换为Microsoft格式的方法(我认为是P1363),但没有从Microsoft,C#转换为ASN1 for Java。 我不知道如何进行逆向工程。 我已经探索过http://www.codeproject.com/Articles/25487/Cryptographic-Interoperability-Keys,但最终的结果并不是java方面所需要的。 我可以签一个字符串,然后我得到一个签名,但是Java家伙告诉我它需要从MC开始,第一个字节是指标。 我没有看到这个。 谢谢!

与C#相比,从Java获取错误的字节数

所以我有一些FRX二进制文件,我试图使用Java的二进制读取方法来获取字符串标题。 我有能力这样做,并使用以下程序指定在C#中读取字节的区域: using System; using System.Collections.Generic; using System.Text; using System.IO; public class GetFromFRX { public static void Main() { StringBuilder buffer = new StringBuilder(); using (BinaryReader b = new BinaryReader(File.Open(“frmResidency.frx”, FileMode.Open))) { try { b.BaseStream.Seek(641, SeekOrigin.Begin); int length = b.ReadInt32(); for (int i = 0; i < length; i++) { buffer.Append(b.ReadChar()); } } catch (Exception […]

你能通过Java引用吗?

很抱歉,如果这听起来像一个新手问题,但前几天Java开发人员提到通过引用传递一个参数(通过引用传递一个参考对象) 从C#的角度来看,我可以通过值或引用传递引用类型,这也适用于值类型 我写了一个noddie控制台应用程序来显示我的意思..我可以用Java做到这一点吗? namespace ByRefByVal { class Program { static void Main(string[] args) { //Creating of the object Person p1 = new Person(); p1.Name = “Dave”; PrintIfObjectIsNull(p1); //should not be null //A copy of the Reference is made and sent to the method PrintUserNameByValue(p1); PrintIfObjectIsNull(p1); //the actual reference is passed to the method PrintUserNameByRef(ref p1); […]

如何处理OO应用程序中的跨领域问题? 使用Singleton? dependency injection? 什么?

假设我正在设计一个应用程序,我需要使用全局计时系统(这是一个跨领域的问题)。 我需要从我的应用程序的任何地方访问来自该全球计时系统的数据,并且我不能看到“应用程序的这部分需要它而另一部分不需要”。 我的问题是..我应该将其设计为一种环境语境(在这种情况下,单身人士),还是应该尝试设计其他方式来适应这种情况? 我当然不认为让我的所有类必须通过构造函数注入将这个全局计时类传递给它们是正确的。 很多时候我必须将参考文件真正传递到链中,直到某些类最终需要它。 另一方面,从阅读的角度来看,它会使一切变得更加清晰(它清楚地说明了我的类的依赖性)。 人们通常如何处理这个问题? 有没有其他技术可以帮助解决这个问题? AOP可能吗? PS:全球计时系统只是我从一本我正在阅读的书中获取的一个想法。 日志系统将是这类问题的另一个很好的例子。 谢谢

XLIFF,版本控制或翻译更新过程(差异杠杆步骤)

我正在考虑使用XLIFF标准化企业内的本地化工作。 我是xliff的新手并做了一些研究我想到了以下使用它的一般过程: 从开发项目资源中提取字符串(针对.Net的.resx,针对Java的.properties) – 我发现的好方法是使用来自Okapi Localization Toolbox的Rainbow – 并使用“Utilities => Translation Kit Creation”命令 然后翻译提取的文件,就像在http://www.opentag.com/okapi/wiki/index.php?title=How_to_Translate_XLIFF_Documents中描述的那样,例如使用Virtaal应用程序 最后将翻译后的xliff转换回原始格式(resx / properties) – 这可以与Rainbow一起使用“Utilities => Translation Kit Post-Processing” 到目前为止一切都很清楚,但是我想知道添加或修改字符串资源时的最佳做法是什么? 每当有一个新字符串以原始格式(resx / properties)添加到字符串资源时,我宁愿不重新翻译所有资源。 如果对翻译有版本控制支持,这也将是很好的 – 如果它们用相同的版本标记,那么将合并多个语言翻译(提供相同的字符串集)。 添加新字符串或修改现有字符串时会更新版本。 是否有现成的解决方案? 或者我们必须自己建立什么? 编辑: 我在Okapi Rainbow的Pipeline库中找到了Diff Leverage步骤,但是我很难让它工作。 这是两个xliff文件。 第一个是用法语翻译的第一个版本的资源,第二个是从新版资源生成的文件,其中包含以下更改: 更新了1个字符串(AdminTitleResource现在是管理资源) 删除了1个字符串(HomeLinkResource消失了) 添加了2个新字符串(项目和公司) 但是,运行Diff Leverage管道不会产生翻译的智能合并。 有什么想法吗? 以前版本资源的翻译xliff: Access denied Accès refusé Error message Administration Administration Main […]

为什么数组大小声明使用“1”作为第一个索引?

关于C#/ Java,我注意到的一点似乎是(对我而言)与数组大小声明和数组大小的默认第一索引不一致的问题。 使用数组时,假设您要创建一个大小为3的新整数数组,它将如下所示: int[] newArray = new int[3] {1, 2, 3}; 完全找到并且可读……对吗? 编程语言的标准似乎要求“第一”索引为0 。 使用该逻辑,如果我有兴趣创建一个大小为3的数组,我应该写这个: int[] newArray = new int[2] {1, 2, 3}; 等一下…… VS正在抛出一个错误,说an array initialize of length 2 is expected 。 因此循环数组和数组大小声明的第一个索引是不一致的? 前者使用基于0的索引,第二个使用第1个索引。 这不是任何forms或方式的游戏破坏/改变,但我真的很好奇为什么这里存在差异,或者地狱,如果这甚至是一个问题(就像我说的那样,它不会以任何方式破坏游戏,但我很好奇为什么这样做了)。 我现在可以想到为什么会使用基于1的索引的原因: 在for循环中,您将使用< newArray.Length而不是< newArray.Length – 1或< newArray.Length 。 使用List s一段时间然后回到size-needs-be-declared-arrays会让我有些措手不及。

在codechef和spoj问题中使用modulo 10 ^ 9 + 7的意义是什么?

我正在研究一个问题 ,需要输出为“每行输出答案模10 ^ 9 + 7”。 为什么modulo 10 ^ 9 + 7包含在问题中? 它的意义是什么? 我不是在寻找问题的解决方案; 只有那个特定常数的重要性。

可以精确表示为浮点数/双精度的整数范围

什么是(连续的)整数的确切范围,可以表示为double(相应的浮点数?)我问的原因是因为我对这样的问题感到好奇,因为会发生精度损失。 那是 什么是最小正整数m ,使得m+1不能精确表示为double(相应的浮点数)? 什么是最大的负整数-n使得-n-1不能精确地表示为double(resp.lov)? (可能与上面相同)。 这意味着-n和m之间的每个整数都具有精确的浮点表示。 我基本上都在寻找浮点数和双打数的范围[-n, m] 。 让我们将范围限制为标准IEEE 754 32位和64位浮点表示。 我知道浮点数有24位精度,双精度数有53位(都带有隐藏的前导位),但由于浮点表示的复杂性,我正在寻找一个权威的答案。 请不要挥手! (理想的答案将certificate从0到m所有整数都是可表达的,并且m+1不是。)

LinkedList (2.0):迭代删除项目

我需要迭代LinkedList (在.NET 2.0中)并根据给定的条件删除所有项目。 这是Java下的简单方法,因为我可以执行以下操作: Iterator i = list.iterator(); while (i.hasNext()) { E e = i.next(); if (e == x) { // Found, so move it to the front, i.remove(); list.addFirst(x); // Return it return x; } } 不幸的是,在IEnumerator的.NET行为(相当于Iterator )中,没有remove方法来从集合中删除当前元素。 此外,在LinkedList ,无法访问给定索引处的元素,通过从最后一个迭代到第一个来完成任务。 你知道怎么做吗? 非常感谢你!

持久(基于磁盘)R树(或R *树)

如何将R * Tree实现为持久性(基于磁盘)? 用于保存R * Tree索引或保存叶值的文件的体系结构是什么? 注意:此外如何在这样的持久R *树中执行插入,更新和删除操作? 注释II:我已经实现了具有批量加载function的内存中R-Tree。 但是,当我们谈论基于磁盘的问题时,我认为这完全无关紧要。