python hex hmac md5的密码与javascript不匹配(python hex hmac md5 of passwords not matching javascript)
我有一个javascript密码编码器
md5 = hex_hmac_md5(秘密,密码)
我如何在python中模拟这一点 - 我已经尝试过md5,但这不是同一个值
我从这个网站获得了我的md5 javascript代码:
(md5.js)
他说使用如下:
在哈希的许多用途中,您最终希望将密钥与某些数据组合在一起。 通过简单的连接来做到这一点并不是那么糟糕,但HMAC是专为此用途而设计的。 用法是:
hash = hex_hmac_md5(“key”,“data”);HMAC结果也可以使用b64_hmac_ *或str_hmac_ *进行base-64编码或二进制字符串。
其他一些哈希库反过来也有参数。 如果JavaScript HMAC与您的服务器库生成的值不匹配,请尝试交换订单。
我试过像这样的python:
> def md5_test(secret, password): > > return md5(secret+password).hexdigest()
任何人都可以告诉我python中的代码应该是什么来获得相同的值?
谢谢
i have a javascript password coder
md5 = hex_hmac_md5(secret, password)
How can i emulate this in python - ive tried md5 but that is not the same value
i got my md5 javascript code from this website:
(md5.js)
He states the use is as follows:
In many uses of hashes you end up wanting to combine a key with some data. It isn't so bad to do this by simple concatenation, but HMAC is specifically designed for this use. The usage is:
hash = hex_hmac_md5("key", "data");The HMAC result is also available base-64 encoded or as a binary string, using b64_hmac_* or str_hmac_*.
Some other hash libraries have the arguments the other way round. If the JavaScript HMAC doesn't match the value your server library generates, try swapping the order.
I have tried some python like this:
> def md5_test(secret, password): > > return md5(secret+password).hexdigest()
Can anyone tell me what the code should be in python to get the same value?
Thanks
原文:https://stackoverflow.com/questions/4032694
最满意答案
您可以使用:
(?sUi)\s+in\s*\(((?:[^)']+|'[^']*')*)\)
[^)']+
任何不是紧密的paren或撇号的东西|
要么'[^']*'
一个字符串在SQL Server中,可以通过连续使用两个撇号来转义撇号:
(?sUi)\s+in\s*\(((?:[^)']+|'(?:[^']|'')*')*)\)
[^)']+
任何不是紧密的paren或撇号的东西|
要么'(?:[^']|'')*'
- 撇号后跟着
- 任何不是撇号的东西
- 或双撇号
- 然后是撇号
但是,最好的解决方案是使用正确的SQL解析器/标记器。
You can use:
(?sUi)\s+in\s*\(((?:[^)']+|'[^']*')*)\)
[^)']+
anything that is not a close paren or an apostrophe|
or'[^']*'
a stringIn SQL Server, apostrophes can be escaped by using two apostrophes in a row:
(?sUi)\s+in\s*\(((?:[^)']+|'(?:[^']|'')*')*)\)
[^)']+
anything that is not a close paren or an apostrophe|
or'(?:[^']|'')*'
- an apostrophe followed by
- anything that is not an apostrophe
- or a double apostrophe
- followed by an apostrophe
However, the best solution is to use a proper SQL parser/tokenizer.
相关问答
更多-
你几乎就在那里,你需要用括号括起来作为一个捕获组,并处理除2位数以外的数字。 /([0-9]+\s{0,1}(X|x))|((X|x)\s{0,1}[0-9]+)/g 将其粘贴到http://regexr.com/即可试用。 我测试了它: X9847 X 2645 4442 x x 525521 5254X5541 221 X 266 You're nearly there, you need enclosing brackets to group as a capture group and to ...
-
Ruby正则表达式在Perl中是否具有类似“!〜”的运算符?(Does Ruby regular expression have a not match operator like “!~” in Perl?)[2023-06-20]
是的: !~工作很好 - 你可能以为没有,因为它从Regexp的文档页面中缺少 。 不过,它有效: irb(main):001:0> 'x' !~ /x/ => false irb(main):002:0> 'x' !~ /y/ => true Yes: !~ works just fine – you probably thought it wouldn’t because it’s missing from the documentation page of Regexp. Nevertheless, ... -
可以使用正则表达式来匹配嵌套模式吗?(Can regular expressions be used to match nested patterns? [duplicate])[2021-12-28]
不,这很简单。 有限自动机(它是正则表达式的基础的数据结构)除了它的状态之外没有内存,如果你有任意深度的嵌套,则需要一个任意大的自动机,这与自动机的概念相冲突。 您可以将嵌套/配对元素匹配到一个固定的深度,其深度仅受您的内存限制,因为自动机变得非常大。 但实际上,您应该使用下推自动机,即无上下文语法的解析器,例如LL(自上而下)或LR(自下而上))。 您必须考虑更差的运行时行为:O(n ^ 3)与O(n),n =长度(输入)。 有许多解析器生成器可以使用,例如Java的ANTLR 。 找到Java(或C)的 ... -
使用'和'运算符的Perl / Javascript正则表达式(Perl/Javascript Regular Expression with an 'and' operator)[2022-09-21]
关。 (?!PAT)表示“未跟随PAT ”。 你想要“没有PAT之前”。 (?正则表达式匹配除了2个连续大括号之外的任何内容(Regular expression to match anything but 2 consecutive curly braces)[2023-02-26]
使用lookahead断言(?!{{|}})来验证您的外部集合中没有嵌套的大括号。 {{((?!{{|}}).)*}} 测试程序您可以使用: (?sUi)\s+in\s*\(((?:[^)']+|'[^']*')*)\) [^)']+任何不是紧密的paren或撇号的东西 | 要么 '[^']*'一个字符串 演示 在SQL Server中,可以通过连续使用两个撇号来转义撇号: (?sUi)\s+in\s*\(((?:[^)']+|'(?:[^']|'')*')*)\) [^)']+任何不是紧密的paren或撇号的东西 | 要么 '(?:[^']|'')*' 撇号后跟着 任何不是撇号的东西 或双撇号 然后是撇号 演示 但是,最好的解 ...不是正则表达式的运算符(Not operator in regular expression)[2023-09-30]
您可以使用@Ilya建议的正则表达式lookahead , var pattern = @"\b(?=\s*\d{0,4}s:)"; var lines = new Regex(pattern).Split(input).Where( s => string.IsNullOrEmpty(s.Trim()) == false).ToArray(); 说明 \b(?=\s*\d{0,4}s:) - >以字边界开始,匹配后缀但将其从捕获中排除。 后缀定义为'任意数量的空白字符,后跟数字,长度为 ...您可以尝试使用tokenizer来处理为您解析字符串,以免重新发明轮子。 以下是使用PPI :: Tokenizer的示例 #!/usr/bin/env perl use strict; use warnings; use List::MoreUtils qw( any ); use PPI::Tokenizer; my @operators_i_care_about = qw( = => >= <= != <<= =>> ++ -- ); my $data = "long i = sbyte.Mi ...我正在寻找一个正则表达式(**),它将匹配未知数量的嵌套函数。 一些正则表达式实现支持递归匹配(Perl,PHP,.NET),但JavaScript不支持。 所以,你的问题的答案是:不,这是不可能的。 I'm looking for a regular expression (**) that will match an unknown number of nested functions. Some regex implementations support recursive matching (Per ...尝试这样的事情: In [55]: strs Out[55]: '+123 abc 123 -123 123- 123+ 14 foo bar' #you need to escape '+'and '-' In order to search them In [56]: re.findall(r"\d+[\+|\-]{1}|[\-|\+]{1}\d+",strs) Out[56]: ['+123', '-123', '123-', '123+'] try something like t ...相关文章
更多- 收藏的几个国内国外MD5在线解密网站
- python2和python3的区别
- Python内建函数(H)
- javascript 问题
- Python资源索引 【转载】
- 又拍网架构-又一个用到python的网站
- 又拍网架构-又一个用到python的网站
- 又拍网架构-又一个用到python的网站
- 又拍网架构-又一个用到python的网站
- 又拍网架构-又一个用到python的网站
最新问答
更多- 您如何使用git diff文件,并将其应用于同一存储库的副本的本地分支?(How do you take a git diff file, and apply it to a local branch that is a copy of the same repository?)
- 将长浮点值剪切为2个小数点并复制到字符数组(Cut Long Float Value to 2 decimal points and copy to Character Array)
- OctoberCMS侧边栏不呈现(OctoberCMS Sidebar not rendering)
- 页面加载后对象是否有资格进行垃圾回收?(Are objects eligible for garbage collection after the page loads?)
- codeigniter中的语言不能按预期工作(language in codeigniter doesn' t work as expected)
- 在计算机拍照在哪里进入
- 使用cin.get()从c ++中的输入流中丢弃不需要的字符(Using cin.get() to discard unwanted characters from the input stream in c++)
- No for循环将在for循环中运行。(No for loop will run inside for loop. Testing for primes)
- 单页应用程序:页面重新加载(Single Page Application: page reload)
- 在循环中选择具有相似模式的列名称(Selecting Column Name With Similar Pattern in a Loop)
- System.StackOverflow错误(System.StackOverflow error)
- KnockoutJS未在嵌套模板上应用beforeRemove和afterAdd(KnockoutJS not applying beforeRemove and afterAdd on nested templates)
- 散列包括方法和/或嵌套属性(Hash include methods and/or nested attributes)
- android - 如何避免使用Samsung RFS文件系统延迟/冻结?(android - how to avoid lag/freezes with Samsung RFS filesystem?)
- TensorFlow:基于索引列表创建新张量(TensorFlow: Create a new tensor based on list of indices)
- 企业安全培训的各项内容
- 错误:RPC失败;(error: RPC failed; curl transfer closed with outstanding read data remaining)
- C#类名中允许哪些字符?(What characters are allowed in C# class name?)
- NumPy:将int64值存储在np.array中并使用dtype float64并将其转换回整数是否安全?(NumPy: Is it safe to store an int64 value in an np.array with dtype float64 and later convert it back to integer?)
- 注销后如何隐藏导航portlet?(How to hide navigation portlet after logout?)
- 将多个行和可变行移动到列(moving multiple and variable rows to columns)
- 提交表单时忽略基础href,而不使用Javascript(ignore base href when submitting form, without using Javascript)
- 对setOnInfoWindowClickListener的意图(Intent on setOnInfoWindowClickListener)
- Angular $资源不会改变方法(Angular $resource doesn't change method)
- 在Angular 5中不是一个函数(is not a function in Angular 5)
- 如何配置Composite C1以将.m和桌面作为同一站点提供服务(How to configure Composite C1 to serve .m and desktop as the same site)
- 不适用:悬停在悬停时:在元素之前[复制](Don't apply :hover when hovering on :before element [duplicate])
- 常见的python rpc和cli接口(Common python rpc and cli interface)
- Mysql DB单个字段匹配多个其他字段(Mysql DB single field matching to multiple other fields)
- 产品页面上的Magento Up出售对齐问题(Magento Up sell alignment issue on the products page)