Вы определенно не хотите быть в состоянии соединиться с базой данных без учетных данных, потому что это делает базу данных уязвимой.
Это - общая проблема, как я храню учетные данные, должен был получить доступ к внешним системам? WebLogic имеет учетный картопостроитель для решения этой проблемы, в которой (зашифрованные) учетные данные хранятся во встроенном LDAP. Много продуктов Oracle используют учетное средство хранилища, которое хранит учетные данные в кошельке Oracle.
В вопросе, Вы предоставили ответ. Сохраните зашифрованный пароль и дешифруйте при необходимости в нем. Очевидно, необходимо использовать симметричный алгоритм шифрования такой в качестве 3DES, таким образом, можно дешифровать его. Удостоверьтесь, что симметричный ключ не что-то, что может быть предположено.
прием - то, где Вы сохраняете симметричный ключ необходимым для en/de-cryption. Можно поместить его в файл, который защищается через ОС, или можно сохранить его в коде, но тогда необходимо сохранить код безопасным. Можно также генерировать ключ при использовании техники, которая произведет тот же ключ, и алгоритм довольно безопасен.
, Если можно сохранить код безопасным, можно, очевидно, сохранить пароль в коде также. Однако Вы хотите гибкость способности изменить учетные данные, не изменяя код.
можно добавить больше слоев к этому решению также. Можно зашифровать конфигурационный файл (с различным ключом), а также пароль в нем заставляющий хакера обнаружить 2 ключа. Существуют другие еще более безопасные методы с помощью PKI, но они становятся твердыми настроить.
Я нашел scipy.signal.fftconvolve
, , как также указано Магнусом , но в то время не понимал, что он n -мерен. Поскольку он встроен и выдает правильные значения, он кажется идеальным решением.
Из Пример 2D-свертки :
In [1]: a = asarray([[ 1, 2, 3],
...: [ 4, 5, 6],
...: [ 7, 8, 9]])
In [2]: b = asarray([[-1,-2,-1],
...: [ 0, 0, 0],
...: [ 1, 2, 1]])
In [3]: scipy.signal.fftconvolve(a, b, mode = 'same')
Out[3]:
array([[-13., -20., -17.],
[-18., -24., -18.],
[ 13., 20., 17.]])
Верно! Версия STSCI, с другой стороны, требует дополнительной работы, чтобы сделать границы правильными?
In [4]: stsci.convolve2d(a, b, fft = True)
Out[4]:
array([[-12., -12., -12.],
[-24., -24., -24.],
[-12., -12., -12.]])
(Метод STSCI также требует компиляции, с которой мне не удалось (я просто закомментировал части, не относящиеся к Python), есть некоторые ошибки например , это и изменение входных данных ([1, 2] становится [[1, 2]]) и т. д. Итак, я изменил свой принятый ответ на встроенный fftconvolve ()
функция.)
Корреляция,
Я потерял счет статуса этого пакета в scipy, но я знаю, что мы включаем ndimage как часть пакета выпуска stsci_python для удобства наших пользователей:
http://www.stsci.edu/resources/software_hardware/pyraf/stsci_python/ current / download
или вы можете получить его из репозитория, если хотите:
https: //www.stsci. edu / svn / ssb / stsci_python / stsci_python / trunk / ndimage /
Думаю, вам нужен пакет scipy.stsci:
http://docs.scipy.org/doc/scipy/reference/stsci.html
In [30]: scipy.__version__
Out[30]: '0.7.0'
In [31]: from scipy.stsci.convolve import convolve2d, correlate2d
посмотрите на scipy.signal.fftconvolve, signal.convolve и signal.correlate (есть signal.correlate2d, но кажется, что он возвращает сдвинутый массив, а не по центру).