【发布时间】:2016-12-09 10:38:26
【问题描述】:
我有一个包含哈希的文件,我需要做的是用正则表达式匹配所有特定的哈希,如果有更简单的方法请详细说明,但是这个文件包含多种不同类型的哈希:
请注意,哈希类型仅在此文件中用于测试目的,哈希类型不会在文件中
SHA1 => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
SHA1 => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
SHA1 => abf6021ef8e11106b894bea04c03e9d8a8de17a6
SHA224 => 90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809
SHA224 => 40e223e699912131a99ee76c5e065827373c67bdfaf99d944fe8dfc8
SHA224 => 2acb3a17dd92e2bf54b345b3711e8ead183e01794aafced5ed4ad23e
SHA => f8d3b312442a67706057aeb45b983221afb4f035
SHA => 0c37a678e8eef041b82b3025e64fc01a670bb0f0
SHA => 1f77da8f9d10720e6bbd35b0b998bd7f0bb79381
SHA384 => 768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9
SHA384 => 67d36f4834cb7e79788381f849c21a63b968732bf0f3fac24bf4b24423b797fd12269e2cd7fa428bdc86a48ada5e3577
SHA384 => b66651b7190abc1abdb8c7829207a06335045c353b748462a193042be584603a85587b95806f3fef1da8b1da983d5fb1
ecdsa-with-SHA1 => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
ecdsa-with-SHA1 => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
ecdsa-with-SHA1 => abf6021ef8e11106b894bea04c03e9d8a8de17a6
SHA256 => 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
SHA256 => 34ad260fd7ffae7f4b5c716da1d9d422f95775a5f6f5b910201adfa303ef26a8
SHA256 => 8f2cfb70a71a9f40f95322d176998edce14122a16fa208a8b1cc993d36df3f1d
SHA512 => ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc
5fa9ad8e6f57f50028a8ff
SHA512 => d0351496ef238247ccba08518f10678a6211080a98a6128fa49bd225a2bbec360e3e1b93759f68c14ae3b95096fd81682c1f4a1453
e0057af4a55a910d3066b2
SHA512 => b4cc5ce80cc15910c6e87b15adf1df5485f3165bb02cd5e2d95d3174e137de1d1b6eb0f67ace107f16a234682edd72a6896645969b
19691f38a12199dfc5007e
md4 => db346d691d7acc4dc2625db19f9e3f52
md4 => 4506d07a12e2d2b8f26485a455d6c69f
md4 => 369ee30df7b4b261d5dcd5b607ffca17
md5 => 098f6bcd4621d373cade4e832627b4f6
md5 => cb466b639885e93973c0a272c339ff9a
md5 => ae696df69ec720fbb46d52ebbc262fc8
sha1 => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
sha1 => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
sha1 => abf6021ef8e11106b894bea04c03e9d8a8de17a6
dsaWithSHA => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
dsaWithSHA => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
dsaWithSHA => abf6021ef8e11106b894bea04c03e9d8a8de17a6
DSA-SHA => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
DSA-SHA => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
DSA-SHA => abf6021ef8e11106b894bea04c03e9d8a8de17a6
sha224 => 90a3ed9e32b2aaf4c61c410eb925426119e1a9dc53d4286ade99a809
sha224 => 40e223e699912131a99ee76c5e065827373c67bdfaf99d944fe8dfc8
sha224 => 2acb3a17dd92e2bf54b345b3711e8ead183e01794aafced5ed4ad23e
dsaEncryption => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
dsaEncryption => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
dsaEncryption => abf6021ef8e11106b894bea04c03e9d8a8de17a6
DSA => a94a8fe5ccb19ba61c4c0873d391e987982fbbd3
DSA => c8cc3f3b4b33523b8c180da8562a5dc42a00677c
DSA => abf6021ef8e11106b894bea04c03e9d8a8de17a6
ripemd160 => 5e52fee47e6b070565f74372468cdc699de89107
ripemd160 => b36b88d174a4d7cd16150f0071f150e74939bdcb
ripemd160 => 3d8e0e6cdf562d919887da3af417aa2ecdfa3031
sha => f8d3b312442a67706057aeb45b983221afb4f035
sha => 0c37a678e8eef041b82b3025e64fc01a670bb0f0
sha => 1f77da8f9d10720e6bbd35b0b998bd7f0bb79381
MD5 => 098f6bcd4621d373cade4e832627b4f6
MD5 => cb466b639885e93973c0a272c339ff9a
MD5 => ae696df69ec720fbb46d52ebbc262fc8
MD4 => db346d691d7acc4dc2625db19f9e3f52
MD4 => 4506d07a12e2d2b8f26485a455d6c69f
MD4 => 369ee30df7b4b261d5dcd5b607ffca17
sha384 => 768412320f7b0aa5812fce428dc4706b3cae50e02a64caa16a782249bfe8efc4b7ef1ccb126255d196047dfedf17a0a9
sha384 => 67d36f4834cb7e79788381f849c21a63b968732bf0f3fac24bf4b24423b797fd12269e2cd7fa428bdc86a48ada5e3577
sha384 => b66651b7190abc1abdb8c7829207a06335045c353b748462a193042be584603a85587b95806f3fef1da8b1da983d5fb1
sha256 => 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08
sha256 => 34ad260fd7ffae7f4b5c716da1d9d422f95775a5f6f5b910201adfa303ef26a8
sha256 => 8f2cfb70a71a9f40f95322d176998edce14122a16fa208a8b1cc993d36df3f1d
sha512 => ee26b0dd4af7e749aa1a8ee3c10ae9923f618980772e473f8819a5d4940e0db27ac185f8a0e1d5f84f88bc887fd67b143732c304cc
5fa9ad8e6f57f50028a8ff
sha512 => d0351496ef238247ccba08518f10678a6211080a98a6128fa49bd225a2bbec360e3e1b93759f68c14ae3b95096fd81682c1f4a1453
e0057af4a55a910d3066b2
sha512 => b4cc5ce80cc15910c6e87b15adf1df5485f3165bb02cd5e2d95d3174e137de1d1b6eb0f67ace107f16a234682edd72a6896645969b
19691f38a12199dfc5007e
RIPEMD160 => 5e52fee47e6b070565f74372468cdc699de89107
RIPEMD160 => b36b88d174a4d7cd16150f0071f150e74939bdcb
RIPEMD160 => 3d8e0e6cdf562d919887da3af417aa2ecdfa3031
whirlpool => b913d5bbb8e461c2c5961cbe0edcdadfd29f068225ceb37da6defcf89849368f8c6c2eb6a4c4ac75775d032a0ecfdfe85505730
62b653fe92fc7b8fb3b7be8d6
whirlpool => 838b401be3e04657e0559bc338ec1ac71cd810f35dadd9183152f9ceec089458a487ba11d871c1f1bc313a15b2e1f5cefd59a75
1724b0e0562c8bb616bfb6ee8
whirlpool => 6755e2341ff4cf4b50c6287f1809e217bb9b37d2eeeecd01cb720644c072cb51528377c1ab0de5462496efac14221b6c236bb30
96d386e186c59ab102c826ec3
我已经为 MD5 想出了这个正则表达式:([a-fA-F\d]{32,40}) 这有效,但它也匹配了几乎一半的 SHA 哈希,例如:
ae696df69ec720fbb46d52ebbc262fc8 #<= match
369ee30df7b4b261d5dcd5b607ffca17 #<= match
d0351496ef238247ccba08518f10678a <= match continue hash => 6211080a98a6128fa49bd225a2bbec360e3e1b93759f68c14ae3b95096fd81682c1f4a1453
e0057af4a55a910d3066b2
有没有办法我可以匹配仅 MD 哈希(md4、md5)以及仅 SHA 哈希(sha512、sha384 、sha1 等)?
【问题讨论】:
-
那么,您想要所有
MD和SHA哈希值? -
@AhsanulHaque 是的
-
哈希类型实际上是在文件中还是只为我们准备的?
-
这是你想要的吗? regex101.com/r/ngsts4/1
-
使用我使用的标志/修饰符。 regex101.com/r/tm6otz/2