String[][][] a=new String[5][5][5];
HttpSession session = request.getSession();
char[][] split = null;
split=(char[][]) session.getAttribute("chardata");
int[][][] plaint = (int[][][]) session.getAttribute("root");
int r1=plaint.length;
for (int i = 0; i < r1; i++) {
int r2=plaint[i].length;
for (int j = 0; j < r2; j++) {
int r3=plaint[i][j].length;
for (int k = 0; k < r3; k++) {
if(plaint[i][j][k]!=0){
a[i][j][k]= sha256(Integer.toString(plaint[i][j][k]));
out.println("data:"+split[i][j]+" <br> hash:" + a[i][j][k]+"<br>");
}
}
session.setAttribute("hashed",a);
out.println(" <br><br>");
}out.println(" <br>");
}
out.println("</body>");
out.println("</html>");
RequestDispatcher rd = request.getRequestDispatcher("redirection");
rd.forward(request,response);
这是我的servlet。
Sha256对值进行散列并将十六进制字符串返回到[] [] []。
输出的一部分是:
数据:■
散列:d6d824abba4afde81129c71dea75b8100e96338da5f416d2f69088f1960cb091数据:H
散列:ad48ff99415b2f007dc35b7eb553fd1eb35ebfa2f2f308acd9488eeb86f71fa8数据:
散列:ad48ff99415b2f007dc35b7eb553fd1eb35ebfa2f2f308acd9488eeb86f71fa8
变量plaint [] [] []具有空值,也会被发送以进行哈希处理。我无法过滤掉这些空值。它似乎有一个白色空间,但系统不认为这是白色空间。它也不认为该值为空。
Split [] []也有同样的问题,因为它来自plaint [] [] []。它具有用户输入的值和一个字符&#39; &#39;作为剩余索引值
如何过滤掉它?
答案 0 :(得分:0)
具有&#39;的角色。 &#39;表示它为null(/ u0000)。所以使用:
if(split[i][j]!=0)
检查它是否为NULL可以解决问题。