在我的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:
该应用程序在我的服务器上运行,数据库存储加密的敏感客户数据.我以为我是安全的,因为没有文本文件中的密钥供所有人阅读,而是编译它.
我希望安全地加密一串文本,并且每次都使加密字符串不同,但始终能够解密.
例如,如果我在两个不同的时间加密文本"FooBar",我希望每次加密的字符串看起来不同,我将如何进行此操作?
另外,我可以使用哪种最安全的加密方式来执行此操作?
我想尽可能使用C#和.Net,但我是一个完全加密的菜鸟!
谢谢
我希望制作一个无法追踪的投票系统,允许注册用户以某种方式对一些敏感问题进行投票,这样就无法在数据库受到损害的情况下追踪投票给用户(包括被过于好奇的数据库"妥协"管理员).
详细设置:
我有一些解决方案,我在宽限期后作为我自己的答案发布.
目前,我有一个包含用户名,密码等的数据库.我希望查看数据库以检查是否有重复项.
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这是一个网站应用程序.
我正在尝试使用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?\.
最后,密码需要多长时间,盐应该多长时间?
谢谢
我被告知您不应该将用户密码存储在数据库中,但如果我无法保存密码,如何验证用户身份?只是加密它们足以保证它们的安全吗?
最近新闻中出现了几个受到妥协的高调网站的故事,比如LinkedIn,我不认为这么高调的网站会存储明文密码,所以会假设它们是加密的.
我正在尝试在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中此检查约束的当前格式是什么?
只是想知道密码加密的方法是否有利有弊...通常,我会使用php并使用md5加密密码,然后再将新用户插入数据库.我最近继承了一个项目,他们在sql插入查询中使用PASSWORD()来加密它.那么,现在我想知道使用一个优于另一个是否有优势?
我有一个用户名和密码的数据库.我需要创建一个"忘记密码"功能,让它在表中搜索用户名并返回该用户的密码.然后我希望它发送一封电子邮件说明名称和密码.
这是我为特定用户查询数据库的工作代码:
<?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) 我想更新我的 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) security ×3
c# ×2
mysql ×2
passwords ×2
php ×2
sql ×2
.net ×1
aes ×1
c ×1
collation ×1
constraints ×1
cryptography ×1
encryption ×1
hash ×1
hashtable ×1
ms-access ×1
oledb ×1
oracle ×1
python ×1
sql-update ×1
sqlite ×1
syntax-error ×1
username ×1
voting ×1