小编Ilm*_*nen的帖子

使用perl比较两个Unicode字符串

当我运行以下代码时,它不会进入"在这里做一些事情"部分:

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进行比较?

unicode perl

5
推荐指数
1
解决办法
2650
查看次数

PySNMP无法识别响应

我使用以下简单脚本:

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)

python snmp mib pysnmp

5
推荐指数
1
解决办法
1866
查看次数

Android游戏开发:碰撞检测失败

我目前正在为Android开发游戏,我希望您在我遇到的问题上获得专业知识.

背景:

  1. 我的游戏包含帧速率独立运动,它在执行必要的速度计算之前考虑了增量时间值.

  2. 游戏是传统的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超过定义碰撞检测的边界,角色直接落入(就好像传送一样) ).

我应该如何处理此问题以防止这种情况发生?

在此先感谢您的帮助,我期待着向您学习!

android collision-detection

5
推荐指数
1
解决办法
394
查看次数

Python HMAC-SHA1与Java HMAC-SHA1的结果不同

我从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)

python java sha1 hmac

5
推荐指数
1
解决办法
6622
查看次数

jsSHA,CryptoJS和OpenSSL库给出了不同的结果

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)

javascript cryptography sha1 hmac

5
推荐指数
1
解决办法
6147
查看次数

可以引用php常量但define()返回false

有没有遇到过这个?

var_dump(CRYPT_SHA256 == 1); // returns bool(true)
var_dump(defined(CRYPT_SHA256)); // returns bool(false)
Run Code Online (Sandbox Code Playgroud)

php constants

5
推荐指数
1
解决办法
956
查看次数

使用OpenCV进行运动检测

我看到与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)计算非零值的数量
再次坚持如何对其进行阈值处理,因为即使对于非常相似的帧,我也会获得大量的非零值.

请告诉我应该采取什么方法.我是否采用上述两种方法朝着正确的方向前进,或者是否有一种简单的方法可以在所有最通用的场景中使用.

android opencv motion-detection

5
推荐指数
1
解决办法
2374
查看次数

如何使用HMAC SHA-1的PBKDF2返回超过20个字节?

如果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个字节之后看到某种模式,但我没有.

cryptography sha1 hmac pbkdf2

5
推荐指数
1
解决办法
1110
查看次数

HMACSHA1 SSL问题

我有以下代码从密码创建哈希,然后将其与数据库中存储的哈希密码进行比较.所有工作都优于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我可以登录.

有任何想法吗?

非常感谢

c# asp.net ssl sha1 hmac

5
推荐指数
1
解决办法
208
查看次数

如何打开.txt.enc文件?

我有一个.txt.enc文件.当我尝试在像Emacs这样的文本编辑器中打开它时,我会得到任意数量的字符和数字.实际上它是加密的.我也尝试过openssl命令行工具,但它们也没有给出正确的结果.

有谁知道我怎么能打开这样的文件?

encryption openssl file-format

5
推荐指数
1
解决办法
3万
查看次数