我想在使用 EC 密钥签署数据期间提供 OpenSSL 特定数据以用作随机种子。我这样做是为了将我的应用程序与另一个参考应用程序(封闭源代码)进行比较。该实用程序将带有私钥的文件、带有要签名的数据的文件和带有随机数据的文件作为参数。
我已经生成了 EC 密钥并签署了数据,但由于没有共同点,因此无法比较这两个应用程序。OpenSSL 生成用于对数据进行签名的随机数据(可能来自 /dev/random),因此每次运行都会给我一个不同的签名。
我试过RAND_clear()与 结合使用RAND_add(),但不断变化的签名。要么我不理解整个 ECDSA 概念,要么我做错了什么。
我比较应用程序的第二个选项是导入公钥并验证参考程序生成的签名。这是更好的选择,但我无法导入给定的示例公钥(83 个字符的十六进制字符串)。EC_POINT_oct2point()一直给我空结果。
任何帮助/指针/参考将不胜感激。
char * key_as_binary_data; //369368AF243193D001E39CE76BB1D5DA08A9BC0A63307AB352338E5EA5C0E05A0C2531866F3E3C2702
int data_size; //Size of the key buffer
EC_POINT * ecpoint = NULL;
EC_GROUP * ecgroup = NULL;
EC_KEY * eckey = NULL;
point_conversion_form_t form = POINT_CONVERSION_UNCOMPRESSED;
int asn1_flag = OPENSSL_EC_NAMED_CURVE;
eckey = EC_KEY_new();
ecpoint = EC_POINT_new(ecgroup);
ecgroup = EC_GROUP_new_by_curve_name(OBJ_sn2nid("sect163k1"));
EC_GROUP_set_asn1_flag(ecgroup, asn1_flag);
EC_GROUP_set_point_conversion_form(ecgroup, form);
EC_KEY_set_group(eckey,ecgroup);
EC_KEY_generate_key(eckey);
//This gives me a null ecpoint
EC_POINT_oct2point(ecgroup,ecpoint,key_as_binary_data,data_size-1,ctx);
EC_KEY_set_public_key(eckey,ecpoint);
Run Code Online (Sandbox Code Playgroud) 我正在编写代码以从格里高利日期转换为JDE(JDEdwards)Julian日期.
注:JDE Julian日期是从长期的正常使用不同的公历日期.
据我可以从谷歌搜索,JDE Julian日期的定义是:
1000*(year-1900) + dayofyear
Run Code Online (Sandbox Code Playgroud)
其中年份为4位数年份(例如2009年),1月1日为1年,并且12月31日全年计入365或366(取决于这是否为闰年).
我的问题是:在1900年前支持了多少年?如果是的话,上述公式是否仍然适用,或者应该如此:
1000*(year-1900) - dayofyear
Run Code Online (Sandbox Code Playgroud)
(注意减去而不是加号.)
或者是其他东西?
有没有人有这个日期格式的官方文档的链接?
我刚刚开始通过SICP(我自己;这不适合一个班级),我已经在练习1.6中苦苦挣扎了几天,我似乎无法弄明白.这是Alyssa重新定义if的方式cond,如下所示:
(define (new-if predicate then-clause else-clause)
(cond (predicate then-clause)
(else else-clause))
Run Code Online (Sandbox Code Playgroud)
她在一些简单的情况下成功测试它,然后用它来重新编写平方根程序(它工作得很好if):
(define (sqrt-iter guess x)
(new-if (good-enough? guess x)
guess
(sqrt-iter (improve guess x)
x)))
Run Code Online (Sandbox Code Playgroud)
然后问题是:"当Alyssa试图用它来计算平方根时会发生什么?解释." [如果有必要,我很高兴能重现其他程序(good-enough?,improve,等),只是让我知道.]
现在,我知道会发生什么:它永远不会返回一个值,这意味着程序无限地递归.我无法解释为什么会这样.无论之间存在什么微妙的差异,if并且new-if正在逃避我.任何和所有帮助非常感谢.
我在我的log4net配置中为我的应用程序设置了一个logfileAppender和一个consoleAppender.我希望logfile appender只写上面的ERROR消息和控制台appender来编写DEBUG及以上版本.
我的配置是:
<log4net debug="false">
<appender name="LogFileAppender" type="log4net.Appender.FileAppender,log4net" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<layout type="log4net.Layout.PatternLayout,log4net">
<param name="ConversionPattern" value="%d %M - %m%n" />
</layout>
<threshold value="ERROR"/>
</appender>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender" >
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d %m%n" />
</layout>
</appender>
<root>
<priority value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="LogFileAppender" />
</root>
</log4net>
Run Code Online (Sandbox Code Playgroud)
我发现ERROR和DEBUG都输出到我的logfile appender.如何将其限制为仅ERROR?
好的,我很沮丧!我已经狩猎了好几个小时,我仍然难过.
环境:WinXP,Eclipse Galileo 3.5(直接安装 - 无需额外插件).
所以,我有一个简单的JUnit测试.它从内部Eclipse JUnit运行配置运行良好.这个类没有依赖任何东西.为了尽可能缩小这个问题,它只包含:
@Test
public void testX() {
assertEquals("1", new Integer(1).toString());
}
Run Code Online (Sandbox Code Playgroud)
到目前为止没有汗水.现在我想采取从Ant内部运行此测试用例的超级高级步骤(最终目标是与Hudson集成).
所以,我创建了一个build.xml:
<project name="Test" default="basic">
<property name="default.target.dir" value="${basedir}/target" />
<property name="test.report.dir" value="${default.target.dir}/test-reports" />
<target name="basic">
<mkdir dir="${test.report.dir}" />
<junit fork="true" printSummary="true" showOutput="true">
<formatter type="plain" />
<classpath>
<pathelement path="${basedir}/bin "/>
</classpath>
<batchtest fork="true" todir="${test.report.dir}" >
<fileset dir="${basedir}/bin">
<include name="**/*Test.*" />
</fileset>
</batchtest>
</junit>
</target>
</project>
Run Code Online (Sandbox Code Playgroud)
$ {basedir}是工作空间中包含源,类和构建文件的Java项目名称.所有.java和build.xml都在$ {basedir}/src中..class文件位于$ {basedir}/bin中.
我已经通过Windows/Preferences/Ant/Runtime/Contributed Entries将eclipse-install-dir/plugins/org.junit4_4.5.0.v20090423/junit.jar添加到Ant运行时类路径中.ant-junit.jar在Ant Home Entries中.
那么,当我运行这个疯狂复杂的目标时会发生什么?我的报告文件包含:
Testsuite: com.xyz.test.RussianTest
Tests run: 1, Failures: 0, Errors: 1, Time …Run Code Online (Sandbox Code Playgroud) 问题是 - 我想用C++编写一个模板类,把它放在一个DLL中,然后从我的C#项目中调用它.可能吗?能否请您提供有关如何做的任何参考或文章?
编辑
我想要DLL在非托管 C++中编写
我有一些看起来像这样的数据
john, dave, chris
rick, sam, bob
joe, milt, paul
Run Code Online (Sandbox Code Playgroud)
我正在使用这个正则表达式匹配名称
/(\w.+?)(\r\n|\n|,)/
Run Code Online (Sandbox Code Playgroud)
大部分都有效,但文件在最后一个单词之后突然结束,意味着最后一个值没有结束\r\n,\n或者,它以EOF结束.有没有办法在正则表达式中匹配EOF,所以我可以把它放在第二个分组中?
我安装了Memcache并且正在通过Apache(v2.2)运行PHP应用程序,但是当我尝试在命令行中运行.php文件时,我收到此错误:
Fatal error: Class 'Memcache' not found in /usr/local/Matters/app/matters-common/connection.php on line 94
Run Code Online (Sandbox Code Playgroud)
第94行是:
$memcache = new Memcache;
Run Code Online (Sandbox Code Playgroud)
其他信息:
CentOS 5.2
PHP 5.2.5(cli)(内置:2008年2月20日21:13:12)
Zend Engine v2.2.0,版权所有(c)1998-2007 Zend Technologies
Apache v2.2.8
通常在项目开发过程中我会经常部署,以确保我不会在生产中遇到任何问题.
此外,在整个开发过程中,我发现自己正在改变数据库的模式.
如何在生产中轻松更新数据库?
我一直在删除旧数据库并重新连接新数据库.是否有更快的方式来更新部署数据库?
谢谢
有什么免费工具吗?
我想将Twitter API集成到我的iphone应用程序中.我已经阅读了有关iPhone SDK 2.2的JSON框架.但我是这类应用程序的新手.任何人都可以解释如何将这个Twitter的API与我的应用程序集成以及如何使用它.另请告诉我如何打开"svn checkout http://json-framework.googlecode.com/svn/trunk/json-framework-只读"我已下载此代码,但我不知道从这里开始.请帮我解决这个问题.提前致谢.
ant ×1
apache ×1
c ×1
c# ×1
c++ ×1
classpath ×1
command-line ×1
cryptography ×1
date ×1
dll ×1
hamcrest ×1
interop ×1
iphone ×1
java ×1
jdedwards ×1
julian-date ×1
junit ×1
key ×1
log4net ×1
memcached ×1
objective-c ×1
openssl ×1
php ×1
recursion ×1
regex ×1
schema ×1
sicp ×1
sql ×1
sql-server ×1
twitter ×1