情况:我需要在我的远程数据库和我的c#应用程序之间进行加密.我不知道我在做什么(之前从未做过任何加密),我在网上找到的所有东西都是针对asp.net并处理了web.config文件.
一些相关数据:我的连接字符串包含SQL Server身份验证的密码信息,有一个select和一个delete语句.这三件事需要加密.
我正在使用SQL Server 2008,Visual Studio 2008和C#.
我怀疑这是否相关,但这是在Windows服务中发生的.到目前为止,在winForms中运行的任何SQL相关都在我的服务中起作用,因此任何与winForms相关的帮助也是值得赞赏的.
我需要什么帮助:
任何不限于asp.net的加密参考都将非常感激.:)
我看到MSDN页面,它似乎是一个体面的起点,但我有点困惑.看起来这是2个应用程序相互发送文件的方式,而不是将加密的内容发送到SQL Server?使用这个,我不知道SQL Server如何知道如何解密它?
我是否可以在左侧视野中寻找System.Security.Cryptography?有没有办法在System.Data.SqlClient中指定加密,或者我不得不诉诸于在远程服务器上制作存储过程?
先感谢您!!!:)
摘要:
谢谢大家让我走上正确的道路,很难选择一个答案!:)
我已经得出结论,我需要使用SSL,虽然我对how-tos有很多疑惑,但我知道这需要一个证书,并且一旦证书设置完毕,客户端就可以通过询问来请求加密对于连接字符串中的"Encrypt = yes".幸运的是,我相信我已经有了一个我可以使用的.
还有一点需要注意 - TDE是关于加密数据的好消息,这些数据只是位于数据库中,而SSL则是用于传输加密数据的内容.
以下是我发现最有帮助的几个链接:
http://blogs.msdn.com/b/sql_protocols/archive/2005/10/04/476705.aspx
http://support.microsoft.com/default.aspx?scid=kb;en-us;316898
我对Android和编程一般都很陌生,我似乎无法使用Android SDK打包的命令行工具.我正在运行Mac OSX,每次我尝试运行layoutopt时,终端返回,*-bash:cmd:command not found*
另外,使用这些工具时,我的SDK位于Developer目录中,而我的android项目位于某个不相关的目录中是否可以?
下面的代码效果很好.如果Get
和Use
方法在不同的程序集中,则代码将失败并出现RuntimeBinderException.这是因为.Net运行时系统仅保证<string, int>
程序集内的匿名类型(在本例中)的通用性.
有没有办法愚弄运行时系统来克服这个问题?我可以在Use
旁边的调试器中检查对象,调试器可以看到相关的属性.
class Program
{
static void Main(string[] args)
{
UsePerson();
Console.ReadLine();
}
public static void UsePerson()
{
var person = GetPerson();
Console.WriteLine(person.Name);
}
public static dynamic GetPerson()
{
return new { Name = "Foo", Age = 30 };
}
}
Run Code Online (Sandbox Code Playgroud) 为什么不存在?
import math
[x for x in dir(math) if 'log' in x]
>>> ['log', 'log10', 'log1p']
Run Code Online (Sandbox Code Playgroud)
我知道我可以做log(x,2),但是log2很常见,所以我有点困惑.
哦,看起来它只在C99中定义,而不是C90,我猜这回答了我的问题.仍然看起来有点傻.
我正在使用Perl执行一些文件清理,并遇到一些性能问题.我的代码的一个主要部分涉及标准化名称字段.我有几个部分看起来像这样:
sub substitute_titles
{
my ($inStr) = @_;
${$inStr} =~ s/ PHD./ PHD /;
${$inStr} =~ s/ P H D / PHD /;
${$inStr} =~ s/ PROF./ PROF /;
${$inStr} =~ s/ P R O F / PROF /;
${$inStr} =~ s/ DR./ DR /;
${$inStr} =~ s/ D.R./ DR /;
${$inStr} =~ s/ HON./ HON /;
${$inStr} =~ s/ H O N / HON /;
${$inStr} =~ s/ MR./ MR /;
${$inStr} =~ s/ MRS./ MRS /;
${$inStr} =~ …
Run Code Online (Sandbox Code Playgroud) 所以这不是一个普通的条件选择语句.
我目前有一个专栏ID
和一个专栏Number
.要么ID
是0,要么Number
是0.
所以我的select语句需要选择colA,colB,colC,crazy part
来自表A.
这crazy part
是:
(If ID > 0, ID, Number)
基本上选择并返回不是0的列.有没有办法在T-SQL中执行此操作?
这与以下问题有关:如何在Oracle 11g中存储无限制的字符?
如果我需要的最大值是8000个字符,我可以再添加3个varchar2列,这样我就会有4个列,每个列有2000个字符,以获得8000个字符.因此,当第一列填满时,值将溢出到下一列,依此类推.这个设计会有什么不好的副作用吗?请建议.
我需要在mysql数据库中插入几亿条记录.我一次批量插入100万.请参阅下面的代码.这看起来很慢.有没有办法优化它?
try {
// Disable auto-commit
connection.setAutoCommit(false);
// Create a prepared statement
String sql = "INSERT INTO mytable (xxx), VALUES(?)";
PreparedStatement pstmt = connection.prepareStatement(sql);
Object[] vals=set.toArray();
for (int i=0; i<vals.length; i++) {
pstmt.setString(1, vals[i].toString());
pstmt.addBatch();
}
// Execute the batch
int [] updateCounts = pstmt.executeBatch();
System.out.append("inserted "+updateCounts.length);
Run Code Online (Sandbox Code Playgroud) 我问最近一个关于使用readfile()来远程执行PHP的问题,但也许我最好先找出问题,看看我是否在考虑错误的方法,所以这里有:
我曾经考虑过从客户端服务器到我的调用include(),这至少使变量范围保持不变,但许多站点(和PHP文档)似乎建议使用readfile(),file_get_contents()或类似的东西.理想情况下,我希望在客户端的服务器上为我服务器上的每个"真实"文件提供一个简单的包装器文件.
关于如何实现我的需求的任何建议?
谢谢,ColmF
c# ×2
sql-server ×2
.net ×1
android ×1
batch-file ×1
chm ×1
command-line ×1
dynamic ×1
encryption ×1
jdbc ×1
math ×1
mysql ×1
obfuscation ×1
oracle ×1
oracle11g ×1
performance ×1
perl ×1
php ×1
public-key ×1
python ×1
sql ×1
t-sql ×1
terminal ×1
varchar2 ×1