小编c0r*_*0rp的帖子

在移动应用程序中注册帐户/唱歌/验证的最佳做法

我正在写移动应用程序.我也有web服务器,处理http请求以启动用户注册,并将用户/密码添加到数据库.但由于安全性,我不想将用户密码作为POST请求的参数发送.现在在我的本地机器上它完美运行,但在互联网上它将是不安全的.DDoS这个Web服务器也很容易.

所以我的问题是:

  1. 如何在Android应用中组织注册过程?
  2. 移动应用程序通常如何处理注册过程?
  3. 如何安全地发送用户密码?
  4. 如何在移动应用程序中安全地存储用户密码,尤其是在Android应用程序中

security post android login

6
推荐指数
1
解决办法
4969
查看次数

为什么将NVL函数称为“ NVL”?

有时我nvl()在代码中看到一个函数。对于Java,它看起来像这样:

public static String nvl(String value, String alternateValue) {
    if (value == null)
        return alternateValue;

    return value;
}
Run Code Online (Sandbox Code Playgroud)

我知道此函数的作用,但不知道为什么调用它nvl。为什么不checkNotNullreturnNotNull?NVL代表什么?

我想ñ ULL V ALUE 大号 ...?

java database nvl

5
推荐指数
1
解决办法
1万
查看次数

在.class文件中替换"字符串"是否安全?或者最好重新编译?

主要问题是:在*.class文件(java编译的类)中更改一些"字符串"信息是否安全.

我在做的是:

使用正则表达式我试图找到一些编译项目中的所有IP地址蜇"

find . -type f | xargs grep -E "[0-9]{3}\.[0-9]{3}\.1\.[0-9]{0,3}"
Run Code Online (Sandbox Code Playgroud)

这个命令告诉我一些二进制文件与我的正则表达式匹配.它指出这个二进制文件是.jar.class.当我打开这些.class文件时,vi我可以看到很多奇怪的字符,还有像这样的二进制垃圾中的" http://192.168.1.111 ".

我的最后一项任务是将所有IP地址(使用sed -i)替换为FQDN.

安全吗?或者只有工作解决方案来反汇编所有项目并重新编译?


答案后添加.

我这样测试:

创建Change.java

public class Change {

    public static String CHANGE_ME="SOME_TEST_STRING";

    public static void main (String[] argv){
        System.out.println(CHANGE_ME);
    }
}
Run Code Online (Sandbox Code Playgroud)

运行它,并在终端中看到它

$ java Change
SOME_TEST_STRING
Run Code Online (Sandbox Code Playgroud)

编译并运行替换:

sed -i 's/SOME_TEST_STRING/AAAAA/g' Change.class

在此之后再次运行

$ java Change 
Exception in thread "main" java.lang.ClassFormatError: Illegal UTF8 string in constant pool in class file Change
    at …
Run Code Online (Sandbox Code Playgroud)

java regex sed disassembly

4
推荐指数
1
解决办法
951
查看次数

什么是更好/更快:加入许多表或选择一个大表

我们使用的是Oracle 11,我们的应用程序是用Java编写的.每天一次,通常是下午我们的数据库冻结因为许多大的SQL查询.我想以某种方式优化这些查询.此查询包含许多不同表的连接.我的问题是:使用左连接是否更好的性能,或者最好将所有信息放在一个表中并使用一个选择?假设我将为此表构建一个好的索引.

有关信息:平均而言,一个查询获取100兆字节.此查询有时也会相互锁定

更新

连接8个表的表,它们通常是3-5列的表,其中一列是一些ID.Sql查询看起来像:

SELECT t1.c1,t2.c5, t6.c2, ... FROM t1
LEFT JOIN t2 ON t1.c1 = t2.c1
LEFT JOIN t3 ON t3.c1 = t2.c2
LEFT JOIN t4 ON t4.c1 = t2.c1
LEFT JOIN t5 ON t5.c5 = t1.c1
LEFT JOIN t6 ON t6.c1 = t2.c1
LEFT JOIN t7 ON t7.c3 = t3.c1
LEFT JOIN t8 ON t8.c1 = t2.c1
WHERE something
Run Code Online (Sandbox Code Playgroud)

我的问题是,创建一个包含所有连接表的新表是否更好,并使用如下查询:

SELECT c1,c5, c2, ... FROM SOME_NEW_TABLE

更新2

这是报告,如果有人可以解释一般情况会很好.

database oracle performance join oracle11g

3
推荐指数
1
解决办法
2361
查看次数

为什么mongodb oplog总是为空?

我正在尝试在MongoDB和Lucene之间编写同步器。想法是实现将终止oplog并在Lucene中重现所有内容的应用程序。作为基础,我正在使用这篇文章

问题是我的oplog总是空的:

rs0:PRIMARY> db.oplog.rs.find({},{"ts":1}).sort({$natural: -1}).hasNext()
false

rs0:PRIMARY> db.Message.find({}).count()
729

rs0:PRIMARY> db.oplog.rs.find({}).hasNext()
false

rs0:PRIMARY> db.oplog.rs.find()
rs0:PRIMARY> 
Run Code Online (Sandbox Code Playgroud)

有人可以解释我在做什么吗?

java lucene mongodb

2
推荐指数
1
解决办法
794
查看次数

Android Snackbar文本化太大了

我正在尝试更改Snackbar文本大小,因为我希望它对于视力不佳的用户来说易于阅读.我写这个方法来创建Snackbar

private Snackbar getSnackbar(int msgId) {
    final Snackbar snackbar = Snackbar.make(
            mView,
            msgId,
            Snackbar.LENGTH_LONG);
    final View view = snackbar.getView();
    final TextView tv = (TextView) view.findViewById(android.support.design.R.id.snackbar_text);
    tv.setTextSize(TypedValue.COMPLEX_UNIT_SP, getResources().getDimension(R.dimen.snackbar_textsize));
    return snackbar;
}
Run Code Online (Sandbox Code Playgroud)

相应的dimens.xml是:

<resources>
    <dimen name="header_date_font_size">16sp</dimen>
    <dimen name="snackbar_textsize">16sp</dimen>
</resources>
Run Code Online (Sandbox Code Playgroud)

以下是生成的Snackbar的屏幕截图.

在此输入图像描述

为什么文字这么大?我期待它通常是16sp大小,因为它在我的应用程序中无处不在.

android android-snackbar

1
推荐指数
1
解决办法
3656
查看次数