是否有任何模块以某种方式提供基本的“安全”删除,某事。比如Linux实用程序“擦除”,例如
import securitystuff
securitystuff.wipe( filename )
我需要保护不再容易检索的公司源代码。
P.S。是的我知道“擦拭”并不完美,例如在日志文件系统上。但安全需求并不太高。
答案 0 :(得分:4)
标准库中没有这样的函数,并且用一个随机字节覆盖文件的每个字节的简单实现并不难做到。
f = open(path, "wb")
f.write("*"*os.path.getsize(path))
f.close()
os.unlink(path)
但正如线程http://mail.python.org/pipermail/python-list/2004-September/899488.html中所建议的那样,由于许多原因,这并不能保证擦拭,例如磁盘缓存,磁盘扇区重新映射等
因此,最简单的方法是从python中调用linux wipe
,而不是实现自己的擦除。
替代选项是使用srm
答案 1 :(得分:0)
private void GetColumns(string Table)
{
listBox1.Items.Clear();
string Query = "SELECT COLUMN_NAME FROM <YourDataBaseName>.INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = @Table";
SqlDataReader reader = null;
try
{
//Use your own connection string
using (SqlConnection sqlConn = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=<YourDataBaseName>;Integrated Security=True"))
using (SqlCommand command = new SqlCommand(Query, sqlConn))
{
sqlConn.Open();
command.Parameters.AddWithValue("@Table", Table);
reader = command.ExecuteReader();
while (reader.Read())
{
listBox1.Items.Add(reader["COLUMN_NAME"]);
}
}
}
catch (Exception ex)
{
MessageBox.Show("" + ex.Message);
}
finally
{
if (reader != null)
{
if (!reader.IsClosed)
{
reader.Close();
}
}
}
}
请注意,这会将文件擦除到几乎无法使用标准系统恢复的程度,但这不会阻止真正想要您的数据的人恢复文件。您也许可以使用上面的答案来实现它,以使其更加安全。