相关疑难解决方法(0)

在编译的应用程序中隐藏密码/密钥

在我的C应用程序中,我有一个解密密钥,用于解密数据库中的集合(用户名/密码).目前,我只是宣布它

char * key = "$$$secretSampleDecryptionKey$$$";
Run Code Online (Sandbox Code Playgroud)

在该行之后不久,我准备SQL语句,然后从DB中进行选择.我的问题是,如果有人要调试我编译的应用程序或解组它,他们真的会看到密钥吗?我该怎么做才能将它们隐藏起来?

编辑:

正如Mark和Aaron指出的那样,我可以简单地使用Linux/Unix字符串命令

strings nameOfApplication
Run Code Online (Sandbox Code Playgroud)

打印出我的应用程序中的所有字符串,包括"秘密"密钥.

编辑2:

该应用程序在我的服务器上运行,数据库存储加密的敏感客户数据.我以为我是安全的,因为没有文本文件中的密钥供所有人阅读,而是编译它.

c cryptography

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

如何加密文本字符串,以便每次加密字符串不同,即使值相同

我希望安全地加密一串文本,并且每次都使加密字符串不同,但始终能够解密.

例如,如果我在两个不同的时间加密文本"FooBar",我希望每次加密的字符串看起来不同,我将如何进行此操作?

另外,我可以使用哪种最安全的加密方式来执行此操作?

我想尽可能使用C#和.Net,但我是一个完全加密的菜鸟!

谢谢

.net c# encryption

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

注册用户无法进行投票

我希望制作一个无法追踪的投票系统,允许注册用户以某种方式对一些敏感问题进行投票,这样就无法在数据库受到损害的情况下追踪投票给用户(包括被过于好奇的数据库"妥协"管理员).

详细设置:

  1. 每个用户都注册了,没有完全匿名的投票.
  2. Sockpuppets,假帐户等都超出了这个问题的范围 - 这是注册系统的责任.
  3. 每个注册用户只能投一票(可能是任何东西:简单是/否或重量或其他).
  4. 用户必须能够更改/删除他的投票,直到投票结束.
  5. 没有必要让用户查看自己的投票,但可以采用与删除/更改完成相同的方式完成.
  6. 即使有人可以访问用户身份验证数据库和投票数据库,他们也无法跟踪每个投票回用户(从某种意义上说,暴力破坏或以其他方式破解整个用户帐户的访问权限).
  7. 除通信外,系统的所有部分都是开放的,因此不能有隐藏的密钥.MitM攻击超出了范围,但攻击者可以完全访问源,auth和投票数据库.
  8. 用户很懒.他们不会想要任何其他特定于投票的密钥或密码.除了通常的登录/密码/密钥之外,系统不得要求用户提供或保留本地任何内容,无论他们已经用于登录.
  9. 篡改投票和除程序< - >数据库通信和不可追踪性之外的任何安全问题都是更广泛的问题,因此这个问题的范围也超出范围.

我有一些解决方案,我在宽限期后作为我自己的答案发布.

security voting

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

SQLite/Python数据库检索和比较

目前,我有一个包含用户名,密码等的数据库.我希望查看数据库以检查是否有重复项.

con = lite.connect('userInfo.db')
with con:
    cur = con.cursor()
    cur.execute("SELECT * FROM Users WHERE LOWER(Username) = LOWER(?)", (newID,))
    rows = cur.fetchall()
    if len(rows)!=0:
        return "Duplicate detected"
Run Code Online (Sandbox Code Playgroud)

这是我目前的代码.newID是一个新名称,我希望检查数据库中是否存在任何具有相同名称的现有条目.

我的问题是 - 我在代码中这样做的方式是个好主意吗?我主要关心的是我的做法.我应该使用其他东西fetchall()吗?

感谢您的时间!:) PS这是一个网站应用程序.

python sqlite

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

如何正确使用AES_ENCRYPT?

我正在尝试使用AES加密(MySQL中的AES_ENCRYPT)来获取用户密码,但我想出了一堆不同的问题.

这是我用于将新用户存储到数据库中的SQL查询:

INSERT INTO user VALUES (
    '15',
    'John',
    'Doe',
    '123 Fake St.',
    AES_ENCRYPT('mypassword', 'mysalt'),
    'mysalt'
)
Run Code Online (Sandbox Code Playgroud)

盐在实际情况下是随机字符串.

它工作正常.我的意思是,我能够检索原始密码.在此示例中,AES_DECRYPT(user.password, 'mysalt') WHERE user.id = 15检索mypassword.但我可能会忽略一些事情.

  • 保存盐和密码是否安全?除了安全通过默默无闻的事情.

  • 存储哈希密码的最佳格式是什么?我正在使用
    VARBINARY,但存储的字符串看起来像8?p?????_?Z?\.

  • 最后,密码需要多长时间,盐应该多长时间?

谢谢

mysql security aes collation

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

现代网站如何在不实际存储的情况下检查您的密码?

我被告知您不应该将用户密码存储在数据库中,但如果我无法保存密码,如何验证用户身份?只是加密它们足以保证它们的安全吗?

最近新闻中出现了几个受到妥协的高调网站的故事,比如LinkedIn,我不认为这么高调的网站会存储明文密码,所以会假设它们是加密的.

security passwords hash hashtable

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

列的最小长度约束

我正在尝试在Oracle中实现最小长度约束.

当我读到这个答案以及我尝试的其他类似问题时:

ALTER TABLE my_table 
ADD CONSTRAINT MY_TABLE_PASSWORD_CK CHECK (DATALENGTH(password) >=4)
Run Code Online (Sandbox Code Playgroud)

我正在接受"DATALENGTH": invalid identifier".我也尝试过:

( DATALENGTH([password]) >=4 )
( LEN([password]) >=4 )
( LEN(password) >=4 )
Run Code Online (Sandbox Code Playgroud)

Oracle中此检查约束的当前格式是什么?

sql oracle constraints

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

密码加密方法?:PASSWORD()与md5?

只是想知道密码加密的方法是否有利有弊...通常,我会使用php并使用md5加密密码,然后再将新用户插入数据库.我最近继承了一个项目,他们在sql插入查询中使用PASSWORD()来加密它.那么,现在我想知道使用一个优于另一个是否有优势?

php mysql password-encryption

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

查询用户名和返回密码的SQL

我有一个用户名和密码的数据库.我需要创建一个"忘记密码"功能,让它在表中搜索用户名并返回该用户的密码.然后我希望它发送一封电子邮件说明名称和密码.

这是我为特定用户查询数据库的工作代码:

<?php
session_start();

include "config.php";

if($_POST['nameQuery']) {

$query = "SELECT * FROM myDatabase WHERE name = '" .$_POST['nameQuery']. "'";  
$result = mysql_query($query);  
if (mysql_num_rows($result) > 0) { 
    //User exists
    echo '1'; 
} else { 
    mysql_query($query);
//User does not exist
echo '0'; 
}
}
?>
Run Code Online (Sandbox Code Playgroud)

php sql passwords username

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

为什么我在此更新语句中遇到语法错误?

我想更新我的 m/s access 数据库中的一张表,其中我的用户输入了新密码以替换旧密码,但更新语句中存在语法错误。请帮忙!

public partial class resetPassword : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
        }
        protected void SubmitButton_Click(object sender, EventArgs e)
        {
            string userName = (string) Session["username"];

        string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\inetpub\wwwroot\JetStar\database\JetstarDb.accdb";
        var con = new OleDbConnection(str);
        con.Open();

        string pwd = Request.Form["conPassword"];
        OleDbCommand cmd = new OleDbCommand("UPDATE [users] SET password = '" + pwd + "' WHERE username = '" + userName + "'", con);

        try
        {
            cmd.ExecuteNonQuery();
            MessageBox.Show("Your password has been changed successfully."); 
        }
        catch …
Run Code Online (Sandbox Code Playgroud)

c# oledb ms-access syntax-error sql-update

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