Java的MessageDigest SHA1算法返回的结果与php的SHA1函数不同

我有一个带有用户名和密码的SQL表。 密码使用MessageDigest的digest()方法进行编码。 如果我编码密码 – 让我们说“abcdef12” – 使用MessageDigest的digest()方法然后将其转换为hex值,则String与使用PHP的SHA1方法执行相同操作的情况不同。 我希望这些值完全相同。 用于对密码进行编码的代码: MessageDigest md = MessageDigest.getInstance(“SHA-1”); byte[] passbyte; passbyte = “abcdef12”.getBytes(“UTF-8”); passbyte = md.digest(passbyte); 使用此方法将String转换为hex: public static String convertStringToHex(String str) { char[] chars = str.toCharArray(); StringBuffer hex = new StringBuffer(); for (int i = 0; i < chars.length; i++) { hex.append(Integer.toHexString((int) chars[i])); } return hex.toString(); } 密码: abcdef12 […]

我正确使用Java PooledConnections吗?

我想使用与Java的池连接(因为每个线程创建一个连接的成本MysqlConnectionPoolDataSource() )所以我使用的是MysqlConnectionPoolDataSource()对象。 我在线程中持久化我的数据源。 所以,我只在整个应用程序中使用一个数据源,如下所示: startRegistry(); // creates an RMI registry for MySQL MysqlConnectionPoolDataSource dataSource = new MysqlConnectionPoolDataSource(); dataSource.setUser(“username”); dataSource.setPassword(“password”); dataSource.setServerName(“serverIP”); dataSource.setPort(3306); dataSource.setDatabaseName(“dbname”); InitialContext context = createContext(); // Creates a context context.rebind(“MySQLDS”, dataSource); 现在我已经创建了数据源,我在每个单独的线程中执行以下操作: PooledConnection connect = dataSource.getPooledConnection(); Connection sqlConnection = connect.getConnection(); Statement state = sqlConnection.createStatement(); ResultSet result = state.executeQuery(“select * from someTable”); // Continue processing […]

GSON:如何在保持循环引用的同时防止StackOverflowError?

我有一个带循环引用的结构。 出于调试目的,我想转储它。 基本上任何格式,但我选择了JSON。 因为它可以是任何类,所以我选择了不需要JAXB注释的GSON。 但是GSON命中循环引用并递归直到StackOverflowError 。 我怎样才能限制GSON 忽略某些class级成员? @XmlTransient和@JsonIgnore都没有服从。 忽略某些对象图路径? 例如,我可以指示GSON不要序列化release.customFields.product 。 去最多2个级别的深度? 相关: Gson.toJson给出了StackOverFlowError,在这种情况下如何获得正确的json? (公共静态类)

如何从Java中的十进制整数中获取hex值?

我不知道如何从Java中的整数值生成hex“0x83”字符。 我需要一个“0x83”值来表示西里尔字母中的一个字母(这封信: ѓ ),以便将它(字母)发送到我的打印机。 使用我的转换器(下面)将131(十进制0x83)转换为hex时,我得到三个数字:0x31,0x33和0x31。 public String toHex(String arg) { return String.format(“%x”, new BigInteger(arg.getBytes())); } 我需要从此转换中获得0x83。

如何避免用户访问JSF中的.xhtml页面?

我是JSF的新手,并且首先编写简单的jsf web应用程序。 带有.jsf的URL映射到WebContent中的.xhtml文件,但为什么我可以在Web浏览器中使用所有jsf标记打开.xhtml。 如何保护这个?

maven项目:SWT 3.5依赖:任何官方公共回购?

好吧,简而言之,我可能需要获取新的SWT版本而不是我们现在使用的3.3版本。 该项目现在只有这种依赖,并建立良好: org.eclipse.swt.win32.win32 x86 3.3.0-v3346 AFAICGoogle,公共maven仓库中没有最新版本: http ://repo1.maven.org/maven2/org/eclipse/swt/ 所以: 是否有一些最新版本的公共maven回购? 如果没有,您在哪里获得本地和/或公司Nexus中安装的jar子? 你知道的任何groupId / artifactId建议/约定? TIA PS:我主要是Eclipse产品网站布局的菜鸟,通常会迷失在谷歌搜索结果和/或Eclipse网站本身……所以虽然答案可能对你来说很明显,但对我来说可能不是这样,甚至回顾。

如果==比较Java中的引用,为什么它使用这些字符串评估为true?

正如所述,==运算符比较对象引用以检查它们是否引用堆上的同一对象。 如果是这样,为什么我得到这段代码的“平等”? public class Salmon { public static void main(String[] args) { String str1 = “Str1”; String str2 = “Str1”; if (str1 == str2) { System.out.println(“Equal”); } else { System.out.println(“Not equal”); } } }

使用任意定义的匿名接口方法

请考虑以下代码: public static void main(String[] args) { File file = new File(“C:\\someFile.txt”) { public void doStuff() { // Do some stuff } }; file.doStuff(); // “Cannot resolve method” } 当我们尝试调用我们新定义的方法doStuff() ,它是不可能的。 原因是file被声明为File类型的对象,而不是我们新的匿名子类的实例。 所以,我的问题是,有没有“好的”方法来实现这种行为? 除了显而易见的(只是,正确地宣布类)。

从Java中的多个线程写入FileOutputStream

从Java FileOutputStream对象调用多个线程的write是否安全? 输出是否会正确序列化? 澄清: 在我的例子中,类记录器包含一个FileOutputStream引用,多个线程可以调用logger write,它格式化输出并调用FileOutputStream写入。 我是否应该同步我的记录器写入方法以保证来自多个线程的消息不会混合?

涉及Swing和AWT-EventQueue的无响应线程

我有一个没有响应的应用程序,似乎陷入僵局或类似僵局。 请参阅下面的两个主题。 请注意, My-Thread@101c线程阻止AWT-EventQueue-0@301 。 但是, My-Thread刚刚调用了java.awt.EventQueue.invokeAndWait() 。 所以AWT-EventQueue-0阻止My-Thread (我相信)。 My-Thread@101c, priority=5, in group ‘main’, status: ‘WAIT’ blocks AWT-EventQueue-0@301 at java.lang.Object.wait(Object.java:-1) at java.lang.Object.wait(Object.java:485) at java.awt.EventQueue.invokeAndWait(Unknown Source:-1) at javax.swing.SwingUtilities.invokeAndWait(Unknown Source:-1) at com.acme.ui.ViewBuilder.renderOnEDT(ViewBuilder.java:157) . . . at com.acme.util.Job.run(Job.java:425) at java.lang.Thread.run(Unknown Source:-1) AWT-EventQueue-0@301, priority=6, in group ‘main’, status: ‘MONITOR’ waiting for My-Thread@101c at com.acme.persistence.TransactionalSystemImpl.executeImpl(TransactionalSystemImpl.java:134) . . . at […]