Данные Mark как чувствительные в Python

Попробуйте следующее:

SELECT to_char (2/3::float, 'FM999999990.00');
-- RESULT: 0.67

Или просто:

SELECT round (2/3::DECIMAL, 2)::TEXT
-- RESULT: 0.67
20
задан lfaraone 11 June 2009 в 18:05
поделиться

4 ответа

Править

Я сделал решение, которое использует ctypes (который, в свою очередь, использует C) для обнуления памяти.

import sys
import ctypes

def zerome(string):
    location = id(string) + 20
    size     = sys.getsizeof(string) - 20

    memset =  ctypes.cdll.msvcrt.memset
    # For Linux, use the following. Change the 6 to whatever it is on your computer.
    # memset =  ctypes.CDLL("libc.so.6").memset

    print "Clearing 0x%08x size %i bytes" % (location, size)

    memset(location, 0, size)

Я не даю никаких гарантий безопасности этого кода. Протестировано для работы на x86 и CPython 2.6.2. Более подробная запись здесь .

Расшифровка и шифрование в Python не работают. Строки и целые числа интернированы и постоянны, что означает, что вы оставляете беспорядок информации о паролях повсюду.

Хеширование - стандартный ответ, хотя, конечно, открытый текст в конечном итоге нужно где-то обрабатывать.

Правильное решение состоит в том, чтобы выполнять важные процессы как модуль C.

Но если ваша память постоянно скомпрометирована, я бы переосмыслил вашу настройку безопасности.

33
ответ дан 29 November 2019 в 23:45
поделиться

на основе ответа culix: следующие работы с Linux 64-разрядная архитектура.
Протестированный на Debian основывал системы.

import sys 
import ctypes

def nuke(var_to_nuke):
    strlen = len(var_to_nuke)
    offset = sys.getsizeof(var_to_nuke) - strlen - 1
    ctypes.memset(id(var_to_nuke) + offset, 0, strlen)
    del var_to_nuke               # derefrencing the pointer.
0
ответ дан 29 November 2019 в 23:45
поделиться
  • XOR с одноразовым блокнотом, хранящимся отдельно
  • , всегда хранит соленый хеш, а не сам пароль

, или, если вы очень параноик насчет дампов, храните уникальный случайный ключ в некоторых в другом месте, например, в другом потоке, в реестре, на вашем сервере и т. д.

2
ответ дан 29 November 2019 в 23:45
поделиться

Нет возможности «пометить как конфиденциальные», но вы можете зашифровать данные в памяти и снова расшифровать их, когда вам понадобится их использовать - не идеальное решение, но лучшее, что я могу придумать.

2
ответ дан 29 November 2019 в 23:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: