当我运行以下代码时,它不会进入"在这里做一些事情"部分:
my $a ='µ?P[???3??<+·1????"ª';
my $b ='µ?P[???3??<+·1????"ª';
if ($a ne $b) {
# do something here
}
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以将Unicode字符串与perl进行比较?
我使用以下简单脚本:
from pysnmp.entity.rfc3413.oneliner import cmdgen
errorIndication, errorStatus, errorIndex, \
varBindTable = cmdgen.CommandGenerator().bulkCmd(
cmdgen.CommunityData('test-agent', 'public'),
cmdgen.UdpTransportTarget(('IP.IP.IP.IP', 161)),
0,
1,
(1,3,6,1,2,1,4,24,4,1,2,169,254)
)
if errorIndication:
print errorIndication
else:
if errorStatus:
print '%s at %s\n' % (
errorStatus.prettyPrint(),
errorIndex and varBindTable[-1][int(errorIndex)-1] or '?'
)
else:
for varBindTableRow in varBindTable:
for name, val in varBindTableRow:
print '%s = %s' % (name.prettyPrint(), val.prettyPrint())
Run Code Online (Sandbox Code Playgroud)
从命令行使用snmpwalk到此设备返回预期结果.但脚本返回超时之前未收到SNMP响应.如果我省略这个OID,那么一切正常.所以问题在于这个OID
这里tcpdump统计:
/usr/sbin/tcpdump -nn -vv -s0 -A host HOST and udp
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
12:15:31.494920 …Run Code Online (Sandbox Code Playgroud) 我目前正在为Android开发游戏,我希望您在我遇到的问题上获得专业知识.
背景:
我的游戏包含帧速率独立运动,它在执行必要的速度计算之前考虑了增量时间值.
游戏是传统的2D平台游戏.
问题:
这是我的问题(简化).让我们假装我的角色是一个站在平台顶部的方形("重力"是一个恒定向下的characterVelocityDown速度).
我已经定义了碰撞检测如下(假设Y轴指向下方):
给定characterFootY是我的方形字符底边的y坐标,platformSurfaceY是我平台的上y坐标,platformBaseY是我平台的下y坐标:
if (characterFootY + characterVelocityDown > platformSurfaceY && characterFootY + characterDy < platformBaseY) {
//Collision Is True
characterFootY = platformSurfaceY;
characterVelocityDown = 0;
} else{
characterVelocityDown = deltaTime * 6;
Run Code Online (Sandbox Code Playgroud)
当游戏以常规速度运行时,这种方法非常适用; 但是,如果游戏速度变慢,deltaTime(前一帧和当前帧之间经过的时间)变大,而characterFootY + characterVelocityDown超过定义碰撞检测的边界,角色直接落入(就好像传送一样) ).
我应该如何处理此问题以防止这种情况发生?
在此先感谢您的帮助,我期待着向您学习!
我从http://tools.ietf.org/html/rfc6238借用了HMAC-SHA1 Java代码,并略微修改它以使用已知输出的已知密钥/消息对进行硬编码.
然后我尝试在Python中编写相同的代码来验证结果,但是我在Python和Java中获得了不同的值.
已知Java值很好.
Java代码:
import java.lang.reflect.UndeclaredThrowableException;
import java.security.GeneralSecurityException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.math.BigInteger;
import java.util.TimeZone;
import java.util.Arrays;
public class make_hmac {
private make_hmac() {}
private static byte[] hmac_sha(String crypto, byte[] keyBytes,
byte[] text){
try {
System.out.println("Key is..." + bytesToHex(keyBytes) + "\n");
Mac hmac;
hmac = Mac.getInstance(crypto);
SecretKeySpec macKey =
new SecretKeySpec(keyBytes, "RAW");
hmac.init(macKey);
return hmac.doFinal(text);
} catch (GeneralSecurityException gse) {
throw new UndeclaredThrowableException(gse);
}
}
private static byte[] hexStr2Bytes(String hex){ …Run Code Online (Sandbox Code Playgroud) JS的新手,我也学习使用加密库.我不明白为什么使用相同的秘密签署/编码相同的消息会产生不同的结果.
我使用jsSHA 1.3.1这里找到,而这里所描述CryptoJS 3.0.2试图建立一个base64的SHA-1编码的HMAC签名.这是代码:
在HTML ...
<script src="lib/jsSHA/src/sha1.js"></script>
<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js"></script>
Run Code Online (Sandbox Code Playgroud)
在js ...
var message = "shah me";
var secret = "hide me";
var crypto = CryptoJS.HmacSHA1(message, secret).toString(CryptoJS.enc.Base64) + '=';
var shaObj = new jsSHA(message, "ASCII");
var jssha = shaObj.getHMAC(secret, "ASCII", "B64") + '=';
return "crypto answer is " + crypto + " jssha answer is " + jssha;
Run Code Online (Sandbox Code Playgroud)
你能帮我解释一下这些结果有何不同吗?
加密答案是3e929e69920fb7d423f816bfcd6654484f1f6d56 = jssha答案是PpKeaZIPt9Qj + Ba/zWZUSE8fbVY =
更重要的是,这两者都与我在轨道中生成的签名不同,就像这样......
digest = OpenSSL::Digest::Digest.new('sha1')
raw_signature = OpenSSL::HMAC.digest(digest, "hide me","shah me")
b64_signature …Run Code Online (Sandbox Code Playgroud) 有没有遇到过这个?
var_dump(CRYPT_SHA256 == 1); // returns bool(true)
var_dump(defined(CRYPT_SHA256)); // returns bool(false)
Run Code Online (Sandbox Code Playgroud) 我看到与opencv运动检测相关的查询,但我的要求更简单,所以我再次提出问题.我想分析视频帧,看看帧中是否有变化.已经识别出在帧中发生的任何类型的运动.如果发生某些事情,我只是想收到通知.我不需要跟踪/绘制轮廓.
尝试:
1)使用OpenCV(TM_CCORR_NORMED)进行模板匹配.
我使用cvMinMaxLoc&获得相似性索引
if( sim_index > threshold )
"Nothing chnged"
else
"Changed
Run Code Online (Sandbox Code Playgroud)
面临的问题:
我找不到决定如何设置阈值的方法.虚假匹配和完美的价值非常接近.
2)方法2
a)使运行平均值
b)取当前帧和移动平均值之间的abs差值.
c)阈值并使其成为二进制
d)计算非零值的数量
再次坚持如何对其进行阈值处理,因为即使对于非常相似的帧,我也会获得大量的非零值.
请告诉我应该采取什么方法.我是否采用上述两种方法朝着正确的方向前进,或者是否有一种简单的方法可以在所有最通用的场景中使用.
如果Node crypto.PBKDF2使用HMAC SHA-1,那么密钥长度如何超过20个字节?
这是我理解的(显然不正确):crypto.PBKDF2(password, salt, iterations, keylen, callback)使用HMAC SHA-1用盐哈希密码.然后,它需要的是哈希和哈希它具有相同的盐.它会重复这一点,无论你告诉它多少次迭代,然后将结果传回给你.结果将截断为您指定的字节数keylen.
SHA-1输出160位或20个字节.但是,我可以要求keylen超过20个字节crypto.PBKDF2,并且在第20个字节之后,数据不会重复.这对我来说没有意义.
我在这里误解了什么?
试试看:
c.pbkdf2('password', 'salt', 1, 21, function(err, key) {
for (var i = 0; i < key.length; i++) {
console.log(key[i].toString(36));
}
});
Run Code Online (Sandbox Code Playgroud)
我希望在第20个字节之后看到某种模式,但我没有.
我有以下代码从密码创建哈希,然后将其与数据库中存储的哈希密码进行比较.所有工作都优于http.这适用于在c#4.0下运行的asp.net webforms应用程序
HMACSHA1 hash = new HMACSHA1();
hash.Key = Encoding.Unicode.GetBytes(password);
encodedPassword = Convert.ToBase64String(hash.ComputeHash(Encoding.Unicode.GetBytes(password)));
Run Code Online (Sandbox Code Playgroud)
但是,当通过https/ssl运行时,编码的密码不同,因此用户无法登录.
在通过SSL时计算哈希时,.net框架是否会做一些不同的事情?
如果我单步执行代码并复制编码密码并更新我的数据库然后通过SSL我可以登录.
有任何想法吗?
非常感谢
我有一个.txt.enc文件.当我尝试在像Emacs这样的文本编辑器中打开它时,我会得到任意数量的字符和数字.实际上它是加密的.我也尝试过openssl命令行工具,但它们也没有给出正确的结果.
有谁知道我怎么能打开这样的文件?