开发者

MD5 Java Pattern

开发者 https://www.devze.com 2023-04-11 19:55 出处:网络
I am following BalusC\'s DAO Tutorial, where there is this function: private static String hashMD5IfNecessary(String password) {

I am following BalusC's DAO Tutorial, where there is this function:

private static String hashMD5IfNecessary(String password) {
    return !"^[a-f0-9]{32}$".matches(password) ? hashMD5(password) : password;
}

which I开发者_开发知识库 coupled with:

<h:inputText value="#{myBean.password}" />

But "^[a-f0-9]{32}$".matches(password) (where password has been retrieved from a MySQL table) always returns false, even when it is passed an MD5-hashed password, like 21232f297a57a5a743894a0e4a801fc3.

I've also tried the following patterns:

  • [a-f0-9]{32}
  • [a-f0-9]{32}+

but they still always evaluate to false. Besides, I highly doubt that BalusC's original code is wrong. What am I doing wrong?

Thanks!


see http://download.oracle.com/javase/6/docs/api/java/lang/String.html#matches(java.lang.String)

the matches() method takes a regex as the parameter, so given what you've written in the question, it will always return false, as the password is unlikely to be a regex that matches "^[a-f0-9]{32}$".

Try

password.matches("^[a-f0-9]{32}$") 

instead

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号