- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 C# 中生成与在 Java 中生成的相同的 BigInteger 值时遇到了一些问题。在这两种语言中,我都从一个字节数组中创建 BigIntegers,这些字节数组以相同的顺序保存相同的值。Java代码:
public class Test {
private static byte[] RSAModulus = new byte[]{(byte) (0x9f), (byte) 0x39, (byte) 0x91, (byte) 0x77, (byte) 0xde, (byte) 0xf8,
(byte) 0x59, (byte) 0x69, (byte) 0xd7, (byte) 0x3d, (byte) 0x1c, (byte) 0xdf, (byte) 0x84, (byte) 0x4b, (byte) 0xd5,
(byte) 0xb7, (byte) 0xca, (byte) 0x6b, (byte) 0xba, (byte) 0xab, (byte) 0x35, (byte) 0xb8, (byte) 0xea, (byte) 0x91,
(byte) 0x94, (byte) 0x39, (byte) 0xe4, (byte) 0xbe, (byte) 0x12, (byte) 0xbc, (byte) 0x57, (byte) 0x71, (byte) 0xef,
(byte) 0x62, (byte) 0x75, (byte) 0xef, (byte) 0x25, (byte) 0x68, (byte) 0x61, (byte) 0x45, (byte) 0xa5, (byte) 0xb9,
(byte) 0x33, (byte) 0xda, (byte) 0x53, (byte) 0x9f, (byte) 0xc0, (byte) 0x71, (byte) 0xc1, (byte) 0xa7, (byte) 0xe5,
(byte) 0xd3, (byte) 0x67, (byte) 0x98, (byte) 0x8e, (byte) 0xc1, (byte) 0x54, (byte) 0x1c, (byte) 0x3e, (byte) 0x70,
(byte) 0xb2, (byte) 0x74, (byte) 0x49, (byte) 0xf3, (byte) 0xa2, (byte) 0x46, (byte) 0x7e, (byte) 0x8d, (byte) 0xf8,
(byte) 0xe6, (byte) 0xd7, (byte) 0x13, (byte) 0x1a, (byte) 0xfb, (byte) 0x4a, (byte) 0x16, (byte) 0xc2, (byte) 0xde,
(byte) 0xe8, (byte) 0x6b, (byte) 0x6e, (byte) 0x79, (byte) 0x0a, (byte) 0xc2, (byte) 0x8a, (byte) 0xaa, (byte) 0x5f,
(byte) 0x0a, (byte) 0xf5, (byte) 0xd3, (byte) 0xaf, (byte) 0x66, (byte) 0x3f, (byte) 0x33, (byte) 0xd2, (byte) 0xc6,
(byte) 0x88, (byte) 0xcc, (byte) 0xd4, (byte) 0x5c, (byte) 0x0a, (byte) 0x3b, (byte) 0x45, (byte) 0xb9, (byte) 0x49,
(byte) 0xa7, (byte) 0x92, (byte) 0x90, (byte) 0x13, (byte) 0xcc, (byte) 0xb0, (byte) 0x04, (byte) 0x49, (byte) 0xbd,
(byte) 0x7a, (byte) 0x8d, (byte) 0xdf, (byte) 0x21, (byte) 0xe2, (byte) 0x8b, (byte) 0xdd, (byte) 0x63, (byte) 0xa2,
(byte) 0xbd, (byte) 0xae, (byte) 0x10, (byte) 0xbf, (byte) 0xc5};
public static void main(String[] args) {
BigInteger bigInt = new BigInteger( RSAModulus);
System.out.println(bigInt);
System.out.println(byteArrayToHex(bigInt.toByteArray()));
}
public static String byteArrayToHex(byte[] a) {
StringBuilder sb = new StringBuilder(a.length * 2);
for (byte b : a)
sb.append(String.format("%02X", b).concat("-"));
return sb.toString();
}
C#代码:
private static byte[] RSAModulus = new byte[] { (byte)(0x9f), (byte)0x39, (byte)0x91, (byte)0x77, (byte)0xde, (byte)0xf8, (byte)0x59, (byte)0x69, (byte)0xd7, (byte)0x3d, (byte)0x1c, (byte)0xdf, (byte)0x84, (byte)0x4b, (byte)0xd5, (byte)0xb7, (byte)0xca, (byte)0x6b, (byte)0xba, (byte)0xab, (byte)0x35, (byte)0xb8, (byte)0xea, (byte)0x91, (byte)0x94, (byte)0x39, (byte)0xe4, (byte)0xbe, (byte)0x12, (byte)0xbc, (byte)0x57, (byte)0x71, (byte)0xef, (byte)0x62, (byte)0x75, (byte)0xef, (byte)0x25, (byte)0x68, (byte)0x61, (byte)0x45, (byte)0xa5, (byte)0xb9, (byte)0x33, (byte)0xda, (byte)0x53, (byte)0x9f, (byte)0xc0, (byte)0x71, (byte)0xc1, (byte)0xa7, (byte)0xe5, (byte)0xd3, (byte)0x67, (byte)0x98, (byte)0x8e, (byte)0xc1, (byte)0x54, (byte)0x1c, (byte)0x3e, (byte)0x70, (byte)0xb2, (byte)0x74, (byte)0x49, (byte)0xf3, (byte)0xa2, (byte)0x46, (byte)0x7e, (byte)0x8d, (byte)0xf8, (byte)0xe6, (byte)0xd7, (byte)0x13, (byte)0x1a, (byte)0xfb, (byte)0x4a, (byte)0x16, (byte)0xc2, (byte)0xde, (byte)0xe8, (byte)0x6b, (byte)0x6e, (byte)0x79, (byte)0x0a, (byte)0xc2, (byte)0x8a, (byte)0xaa, (byte)0x5f, (byte)0x0a, (byte)0xf5, (byte)0xd3, (byte)0xaf, (byte)0x66, (byte)0x3f, (byte)0x33, (byte)0xd2, (byte)0xc6, (byte)0x88, (byte)0xcc, (byte)0xd4, (byte)0x5c, (byte)0x0a, (byte)0x3b, (byte)0x45, (byte)0xb9, (byte)0x49, (byte)0xa7, (byte)0x92, (byte)0x90, (byte)0x13, (byte)0xcc, (byte)0xb0, (byte)0x04, (byte)0x49, (byte)0xbd, (byte)0x7a, (byte)0x8d, (byte)0xdf, (byte)0x21, (byte)0xe2, (byte)0x8b, (byte)0xdd, (byte)0x63, (byte)0xa2, (byte)0xbd, (byte)0xae, (byte)0x10, (byte)0xbf, (byte)0xc5};
BigInteger Modulus = new BigInteger(RSAModulus);
Console.WriteLine(Modulus);
Console.WriteLine(BitConverter.ToString(Modulus.ToByteArray()));
结果:
C#:
-40907105363667855877152908619053117357772160341452142777989857601426818658568025381825514920073409533964568497621488817967751512954762186714705411964630948143292201585624154827519184247086915587921190770024413749024561021722615390665726203241414710662246795990783021124056737361327527049660747797088078579297
9F-39-91-77-DE-F8-59-69-D7-3D-1C-DF-84-4B-D5-B7-CA-6B-BA-AB-35-B8-EA-91-94-39-E4-BE-12-BC-57-71-EF-62-75-EF-25-68-61-45-A5-B9-33-DA-53-9F-C0-71-C1-A7-E5-D3-67-98-8E-C1-54-1C-3E-70-B2-74-49-F3-A2-46-7E-8D-F8-E6-D7-13-1A-FB-4A-16-C2-DE-E8-6B-6E-79-0A-C2-8A-AA-5F-0A-F5-D3-AF-66-3F-33-D2-C6-88-CC-D4-5C-0A-3B-45-B9-49-A7-92-90-13-CC-B0-04-49-BD-7A-8D-DF-21-E2-8B-DD-63-A2-BD-AE-10-BF-C5
Java:
-67957803197405163432279621608884085928691276607886366236885531026002470080889831781617385728107944022981162471612439220228243925827444081830715759495973881071943381352159034439014628324854518237785608368276142937558158061374892654396604680186975989182503650794599497824022258851557439385188454491467719589947
9F-39-91-77-DE-F8-59-69-D7-3D-1C-DF-84-4B-D5-B7-CA-6B-BA-AB-35-B8-EA-91-94-39-E4-BE-12-BC-57-71-EF-62-75-EF-25-68-61-45-A5-B9-33-DA-53-9F-C0-71-C1-A7-E5-D3-67-98-8E-C1-54-1C-3E-70-B2-74-49-F3-A2-46-7E-8D-F8-E6-D7-13-1A-FB-4A-16-C2-DE-E8-6B-6E-79-0A-C2-8A-AA-5F-0A-F5-D3-AF-66-3F-33-D2-C6-88-CC-D4-5C-0A-3B-45-B9-49-A7-92-90-13-CC-B0-04-49-BD-7A-8D-DF-21-E2-8B-DD-63-A2-BD-AE-10-BF-C5
最佳答案
看来 Java 和 C# 假设表示的字节顺序不同
https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html#BigInteger(byte[]) :
The magnitude is a byte array in big-endian byte-order
https://learn.microsoft.com/en-us/dotnet/api/system.numerics.biginteger?view=netframework-4.8 :
The BigInteger structure expects the individual bytes in a byte array to appear in little-endian order
关于Java BigInteger 与 C# 的差异结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59116581/
#include using namespace std; class C{ private: int value; public: C(){ value = 0;
这个问题已经有答案了: What is the difference between char a[] = ?string?; and char *p = ?string?;? (8 个回答) 已关闭
关闭。此题需要details or clarity 。目前不接受答案。 想要改进这个问题吗?通过 editing this post 添加详细信息并澄清问题. 已关闭 7 年前。 此帖子已于 8 个月
除了调试之外,是否有任何针对 c、c++ 或 c# 的测试工具,其工作原理类似于将独立函数复制粘贴到某个文本框,然后在其他文本框中输入参数? 最佳答案 也许您会考虑单元测试。我推荐你谷歌测试和谷歌模拟
我想在第二台显示器中移动一个窗口 (HWND)。问题是我尝试了很多方法,例如将分辨率加倍或输入负值,但它永远无法将窗口放在我的第二台显示器上。 关于如何在 C/C++/c# 中执行此操作的任何线索 最
我正在寻找 C/C++/C## 中不同类型 DES 的现有实现。我的运行平台是Windows XP/Vista/7。 我正在尝试编写一个 C# 程序,它将使用 DES 算法进行加密和解密。我需要一些实
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
有没有办法强制将另一个 窗口置于顶部? 不是应用程序的窗口,而是另一个已经在系统上运行的窗口。 (Windows, C/C++/C#) 最佳答案 SetWindowPos(that_window_ha
假设您可以在 C/C++ 或 Csharp 之间做出选择,并且您打算在 Windows 和 Linux 服务器上运行同一服务器的多个实例,那么构建套接字服务器应用程序的最明智选择是什么? 最佳答案 如
你们能告诉我它们之间的区别吗? 顺便问一下,有什么叫C++库或C库的吗? 最佳答案 C++ 标准库 和 C 标准库 是 C++ 和 C 标准定义的库,提供给 C++ 和 C 程序使用。那是那些词的共同
下面的测试代码,我将输出信息放在注释中。我使用的是 gcc 4.8.5 和 Centos 7.2。 #include #include class C { public:
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我的客户将使用名为 annoucement 的结构/类与客户通信。我想我会用 C++ 编写服务器。会有很多不同的类继承annoucement。我的问题是通过网络将这些类发送给客户端 我想也许我应该使用
我在 C# 中有以下函数: public Matrix ConcatDescriptors(IList> descriptors) { int cols = descriptors[0].Co
我有一个项目要编写一个函数来对某些数据执行某些操作。我可以用 C/C++ 编写代码,但我不想与雇主共享该函数的代码。相反,我只想让他有权在他自己的代码中调用该函数。是否可以?我想到了这两种方法 - 在
我使用的是编写糟糕的第 3 方 (C/C++) Api。我从托管代码(C++/CLI)中使用它。有时会出现“访问冲突错误”。这使整个应用程序崩溃。我知道我无法处理这些错误[如果指针访问非法内存位置等,
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 7 年前。
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
我有一些 C 代码,将使用 P/Invoke 从 C# 调用。我正在尝试为这个 C 函数定义一个 C# 等效项。 SomeData* DoSomething(); struct SomeData {
这个问题已经有答案了: Why are these constructs using pre and post-increment undefined behavior? (14 个回答) 已关闭 6
我是一名优秀的程序员,十分优秀!