Вопросы с тегами [key]

1

голосов
0

ответ
64

Просмотры

Есть ли оборачивать линия влияет на частный / открытый ключ в PHP?

Я получил открытый ключ в следующем формате: $ ОткрытыйКлюч = '----- BEGIN, PUBLIC KEY MIGfMA0GCSqGSIb3DQEBAQUAAASDF4QKBgQCMuZSztSi6iBLLxHquRomOXLW4WVtoovj8QqbUR8Bp1EiPsvN9Z9o4gCStacMAGWdvxH + V2vCZ7C66S + h2GTG45VBMfUeIfpc + Ta2593R10J34Vv + uKhPmTYNXASDH4howZMc0SK18ol7be63VtlwXGakNkLXsucGlTnfkWwGoQIDAQAB ----- END PUBLIC KEY -----'; $ ОткрытыйКлюч = '----- НАЧАТЬ PUBLIC KEY ----- MIGfMA0GCSqGSIb3DQEBAQUAAASDF4QKBgQCMuZSztSi6iBLLx HquRomOXLW4WVtoovj8QqbUR8Bp1EiPsvN9Z9o4gCStacMAGWd VXH + V2vCZ7C66S + h2GTG45VBMfUeIfpc + Ta2593R10J34Vv + ик hPmTYNXASDH4howZMc0SK18ol7be63VtlwXGakNkLXsucGlTnf kWwGoQIDAQAB ----- END PUBLIC KEY -----'; Разница заключается в том, что первый из них не обернуты, в противном случае, обе строки являются одинаковыми. Оба они могут сделать шифрование, но я не уверен, что они являются тем же, из-за разрывов линий. Я не» т закрытый ключ. Влияет ли упаковка ключ значение ключа?
黃皓哲
1

голосов
0

ответ
41

Просмотры

Как удалить или обновить на NOT EXISTS в MySql с уникальным ключом, когда есть дубликат ключа конфликт

Я пытаюсь обновить таблицу, которая имеет уникальный ключ на основе трех полей (PlayerId, TargetId, CampaignId). У меня есть сценарий, где нужно будет обновить одно поле, но это может создать дубликат (который затем генерирует ошибку дублирования). Мне нужно найти способ, чтобы обновить только те записи, которые не создают конфликт и либо объединить дубликаты или удалить дубликаты. Я попробовал следующее: UPDATE `assignments` SET` PlayerId` = '45' WHERE `CampaignId` = '3' и` PlayerId` = '2101' AND NOT EXISTS (SELECT NULL FROM `assignments` WHERE` CampaignId` =» 3' и `PlayerId` =„2101“) MySql ошибки: # +1093 - таблица„“назначений указываются дважды, как в качестве мишени для„UPDATE“
techtheatre
1

голосов
0

ответ
16

Просмотры

Рефакторинг кода, которые оценивают только определенные значения в хэш-рубинового

У меня есть длинный хэш, состоящий из нескольких хэш в хэш. Сейчас мне просто нужно оценить лишь немногие из значений хэша в. если PARAMS [: my_hash]. [ "start_date (1i)"] пусто? || Титулы [: my_hash] [ "start_date (2г)"] пусто.? || Титулы [: my_hash] [ "start_date (3i)"] пусто.? || Титулы [: my_hash] [ "start_date (4i)"] пусто.? redirect_to: назад вспышка [: ошибка] = «должна включать в себя дату начала.» вернуться конец Он отлично работает, но мне нужно, чтобы высушить его. Я пытался найти способ просто перебираю эти конкретных ключи / значения вместо вызова каждого хеш-ключа по имени. Я знаю, как бы это сделать, если бы массив (просто посмотреть на индексах), но у меня трудное время формулирующего то, что будет работать на хэш.
Misha Krul
1

голосов
1

ответ
17

Просмотры

Составной первичный ключ и его компоненты

Там может быть несколько ключей-кандидатов для таблицы и один из ключевых кандидатов может быть использован в качестве первичного ключа. Если первичный ключ является составным ключом, значит иметь несколько столбцов, что технический термин для его составных колонн?
Murali Dhar Darshan
1

голосов
1

ответ
52

Просмотры

Простой keybind не работает, как ожидалось

Я пытаюсь связать Ctrl + X, чтобы editor.action.clipboardCutAction (вырезания), но с условием, что он вызывается только при выборе текста. Тем не менее, он не работает. Он по-прежнему режет всю линию, когда не выбран ни один текст. Код: "ключ": "Ctrl + X", "Команда": "editor.action.clipboardCutAction", "когда": "editorTextFocus && && editorHasSelection editorReadonly"
John DeBord
1

голосов
0

ответ
68

Просмотры

Как программно нажать клавишу на количество времени?

Так что я знаю, что вы можете стимулировать нажатие на C #, но мой вопрос, например, я вызвал событие, и я хочу, чтобы конкретный ключ, который будет нажат. Теперь это можно сделать с помощью этого: SendKeys.SendWait (SomeChar); Но что, если я хочу, чтобы нажать клавишу в течение определенного периода времени? Это можно сделать с помощью этого (внутри блока события / триггер кода): в то время (правда) {SendKeys.SendWait (SomeChar); } Хотя это было бы просто вызвать ключ, чтобы быть перевес. Теперь мой вопрос, как я на самом деле сделать это так, клавиша нажата все время (держать клавишу нажатой), а не то, что было бы во много раз прессуют в момент времени, вместо этого?
Emanuel L
1

голосов
1

ответ
189

Просмотры

Как использовать внешний генератор случайных чисел с java.security.KeyPairGenerator?

В принципе у меня есть ГСЧ, обеспечивающий случайные числа в базу данных, и я хотел бы использовать эти случайные числа при генерации пары ключей. От моего понимания до сих пор, вы можете инициализировать KeyPairGenerator обеспечивая источник хаотичности (объект SecureRandom). Глядя в SecureRandom документации, я вижу только возможность обеспечить семя, которое будет использоваться в качестве «базовой» семени при формировании семян (метод generateSeed ()). Я прав ? Должна ли я создать свою собственную реализацию класса SecureRandomSpi, где метод generateSeed () будет в основном возвращать случайное число выбрал из базы данных? Я был бы признателен за советы от кого-то с опытом в этом вопросе. Спасибо за поддержку.
Lionel Augustin
1

голосов
3

ответ
408

Просмотры

Невозможно создать KeyPair на Android

Я играл с ключами в Android и пытаюсь сгенерировать открытую / закрытую криптографическую пару ключей. К сожалению, я постоянно получаю «KeyStoreException: Недопустимый ключ блоб». Я следую инструкциям: https://developer.android.com/training/articles/keystore.html В частности, раздел, озаглавленный «Создание нового секретного ключа», который я чувствую, мой код копии почти дословно: попробуйте {KeyPairGenerator Keygen = KeyPairGenerator.getInstance (KeyProperties.KEY_ALGORITHM_EC, "AndroidKeyStore"); keyGen.initialize (новый KeyGenParameterSpec.Builder (KEYNAME, KeyProperties.PURPOSE_SIGN | KeyProperties.PURPOSE_VERIFY) .setDigests (KeyProperties.DIGEST_SHA256, KeyProperties.DIGEST_SHA512) .build ()); KeyPair пара = keyGen.generateKeyPair (); } Задвижка (NoSuchProviderException е) {e.printStackTrace (); } Задвижка (InvalidAlgorithmParameterException е) {e.printStackTrace (); } Значение KEYNAME происходит от пользовательского ввода, но я также попробовал его со значением «ABC». Ошибка я получаю: E / AndroidRuntime: FATAL ИСКЛЮЧЕНИЕ: Основной процесс: com.example.calebg.claimcreator, PID: 17389 java.lang.IllegalStateException: Не удалось выполнить метод андроида: OnClick на android.support.v7. app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater.java:293) в android.view.View.performClick (View.java:6579) в android.view.View.performClickInternal (View.java:6556) в android.view.View .access $ 3100 (View.java:777) в android.view.View $ PerformClick.run (View.java: Основной (ActivityThread.java:6656) в java.lang.reflect.Method.invoke (Native Method) в com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit.java:438) в com.android.internal. os.ZygoteInit.main (ZygoteInit.java:823) Я использую Android Studio 3.0.1, minSdkVersion 23, targetSdkVersion 26, и я проверяю это на "Nexus 6 API P" виртуального устройства. Только другие связанные с StackOverflow вопрос, который я нашел (также только Google результат), который выглядит полезным является: android.security.KeyStoreException: Недопустимый ключ блоб Однако я не ясно, как применить ответ на мою ситуацию и я м не уверен, что это правильное решение в моем случае (как может быть заблокирован хранилище ключей / неинициализированные, когда я только инициализирован его? Как поймать исключение и снова пытается решить эту проблему?). Можно ли определить, что я делаю неправильно?
Caleb
1

голосов
1

ответ
35

Просмотры

Получение определенного ключа от Firebase в Framer

им действительно нового в кодировании таким образом мой вопрос может быть очень легко. На изображении ниже вы можете увидеть, что я имею в Firebase. Вот что я имею в моем Firebase В Framer им с помощью этого модуля и после написания этого кода: ответ = (имена) -> имена печати firebase.get ( «/ тест / пункты», ответ, {OrderBy: «$ ключ»}) им получить что-то вроде этого: {-L8S1RLTU3P3Lb-PxtsF: {сумма: 24926, дата: "25.3.2018", типа: "с"}, -L8S1RTNNySP0quUICNt: {сумма: 23616, дата: "25.3.2018", введите: «с»}, -L8S1RYPmG8L_EkYV8Vd: {сумма: 37863, дата: «25.3.2018», типа: «б»}} проблема заключается в том, что я хочу, чтобы получить только сумму. Когда им пытаются изменить $ ключ к сумме, которую она дает мне ошибку: {ошибка: «Индекс не определен, добавьте» .indexOn «:„количество“, для пути„/ тест / пунктов“, к правилам»
Anatoly Sidorov
0

голосов
1

ответ
35

Просмотры

Получить значение словаря на основе ключа, с точки зрения MVC

Im пытается получить значение на основе ключа из словаря со следующим утверждением: Он просто бросает NULL ссылочного исключения, но у меня есть пара ключей значения с помощью клавиши «MyKey» @ Model.DictionaryTest [ «MyKey»] Должна ли я быть используя список словарей? Если так что вы можете дать мне заявление, чтобы извлечь из этого? UPDATE-- Это класс я передаю в качестве модели и в контроллере я наполнение словаря (я проверил эти значения нетронутые) общественного класс Dummy_PreHires_View_Model {общественного словарь DictionaryTest {получить. задавать; }} Это одна из данных по словарю, если это помогает, я попытался с помощью ключа, указанного на картинке, по-прежнему бросает NULL исключения: Словарь данных оснастка
siddharth sidhu
1

голосов
0

ответ
166

Просмотры

Использование композитных первичных ключей, Baum Вложенные Установить Черту с Laravel красноречивый модели

У меня есть довольно конкретный вопрос здесь, что я пытаюсь работать, и я действительно не уверен, что это возможно, но я полагал, что это стоит выстрел. Я использую Красноречивую модель для управления категориями для четырех различных «сайтов» все в той же таблице. Схема использует идентификатор и идентификатор сайта в качестве составного первичного ключа, который я сделал возможным использовать с Eloquent использования этого метода. Категории реализуются с помощью вложенной модели множества, поэтому я хотел бы использовать Baum легко управлять любыми операциями по этим данным. Проблема в том, что я не могу сказать Baum, что первичный ключ является составным, поэтому он ломается всякий раз, когда он пытается выполнить любую операцию на столе. Кто-нибудь сталкивался с такой вопрос до и понял, решение, или есть другое решение, которое я мог бы использовать?
Matthew Hirt
1

голосов
1

ответ
36

Просмотры

EntityFramework - Composite keys and foreign key

Im working on a project and I'm using Entity Framework with the code first approach. My first model, Player, has two string for its ids (I didnt choose that and I know its a bad approach) : public class Player() { [Key, Column(Order=0)] public string Name { get; set;} [Key, Column(Order=1)] public string TeamId { get; set;} public Stat PlayerStat { get; set;} } The class Stat : public class Stat() { [Key] public int Id { get; set;} // This property should set the name id of the player public string Name { get; set;} // This property should set the teamId of the player public string TeamId{ get; set;} [Required] public Player Player { get; set;} } The player class has a one-to-one relationship with the class stat, where the Stat class is optional to he player class, but the player class is required for the stat class. My problem is, when I create a new migration with Entity Framework and I update the database, it creates 5 columns for the Stat table. Id Name TeamId Player_Name Player_TeamId The properties Name and TeamId in the class stat should only be there to set the values of the foreign keys, and should not create columns in the table. Is there a way to map the property Name to the generated column "Player_Name" and TeamId to "Player_TeamId" ?
Martin Truchon
1

голосов
1

ответ
43

Просмотры

Java - TreeMap не извлекает ключ

Я увенчанный проблема, которую я не могу понять, что именно здесь происходит. Я работать с TreeMap Вот фрагмент кода: TreeMap helper_tree; булево Newline = ложь; для (Linea л: this.lineas) {INT хелпер = 0; Newline = TRUE; Coordenada helper_co = NULL; для (Coordenada с: l.getNodosLinea ()) {хелперов ++; если (c.getEsEstacion () && c.getEsCruce ()!) по-прежнему; если () {Newline map.putIfAbsent (с, новый TreeMap ()); helper_co = с; помощник = 0; Newline = ложь; Продолжить; } Helper_tree = новый TreeMap (); helper_tree.put (helper_co, помощник * 200); map.put (с, helper_tree); map.get (helper_co) .Put (с, хелпер * 200); helper_co = с; помощник = 0; }} При выполнении выделенной линии терпит неудачу, получение 0 записи для ключа: режим отладки в IntelliJ и это структура TreeMap: Структура TreeMap я не понимаю, почему в проваливает .get (ключ), когда ключ Coordenada (12,2) присутствует. Все, прежде чем работает просто отлично. класс Coordenada общественного класса Coordenada реализует Сопоставимые {частный Int [] coordenada = новый Int [2]; частное логическое esEstacion = ложь; частное логическое esCruce = ложь; общественного Coordenada (INT [] coordenada) {this.coordenada [0] = coordenada [0]; this.coordenada [1] = coordenada [1]; } Общественного недействительными setCoordenada (INT [] coordenada) {this.coordenada = coordenada; } Общественного INT [] getCoordenada () {возвращение coordenada; } Общественного недействительными switchEstacion () {this.esEstacion = this.esEstacion!; } Общественного недействительными switchCruce () {this.esCruce = this.esCruce!; } Общественного логический getEsEstacion () {вернуть this.esEstacion; } Общественного логический getEsCruce () {вернуть this.esCruce; } @Override общественных булевы равно (коорд Объект) {Coordenada coordTemp = (Coordenada) коорд; если (! this.coordenada [0] = coordTemp.coordenada [0]) возвращает ложь; если (! this.coordenada [1] = coordTemp.coordenada [1]) возвращает ложь; возвращает истину; } @Override общественного INT CompareTo (Coordenada о) {если (this.coordenada [0]> o.coordenada [0]) возвращает 1; если (this.coordenada [1]> o.coordenada [1]) возвращение 1; если (this.coordenada [0] <o.coordenada [0]) возвращает -1; если (this.coordenada [1] <o.coordenada [1]) возвращает -1; возвращать 0; } @Override общественного Строка ToString () {возвращение "(" + coordenada [0] + "" + coordenada [1] + ")"; }} Вставки прекрасно Coordenada (12,2) и изменяет предыдущую helper_co = Coordenada (10,
k-storm
1

голосов
0

ответ
145

Просмотры

Как я могу использовать @Relation аннотацию Room с составными ключами для построения моделей?

У меня есть объект с составным первичным ключом (идентификаторами еще двумя лиц) и лицом, которое имеет связь с первым, как один-ко-многим (так второй объект имеет составной внешний ключ). Я хотел бы использовать @Relation для построения модели класса, но аннотацию имеет только один родитель и один столбец объекта в качестве параметров. Мне нужно что-то вроде этого: @Relation (parentColumn = {id_part_1, id_part_2}, entityColumn = {compose_key_part_1, compose_key_part_2}, сущность = ItemEntity.class) частные действия Списка; Так что, пожалуйста, какой путь я мог сделать модели для объектов с составным ключом?
Ecnill
1

голосов
1

ответ
252

Просмотры

React: уникальный «ключ» проп не применяется к строкам таблицы?

Реагировать использует ключ опоры для идентификации элементов и согласования должным образом. Следующий код будет давать консольное предупреждение Внимания: Каждому ребенку в массиве или итератор должен иметь уникальный «ключ» пропеллер. Const List = () => {[... Array (3)]. карта ((_, IDX) => {IDX})} Несмотря на то, что это не будет сопз Таблица = () => {[... Массив (3)]. карта ((_, IDX) => {IDX})} Почему уникальный ключ опоры не требуется при использовании строки таблицы?
Xlee
1

голосов
0

ответ
177

Просмотры

SSL Manager / Key Конфигурация пользователя в Jmeter

У меня есть сертификат .p12, который я хочу использовать в моей просьбе JMeter HTTPS. Я преобразовал этот P12-файл в .jks и пытался реализовать с помощью ключа конфигурации, но это не работает, и получает я получаю HTTP 403. может кто-нибудь сказать мне точную процедуру, я должен следить за этим. Jmeter версия пробовал: 3.0,4.0 Jmeter LOG: 018/05/21 09:12:56 INFO - jmeter.engine.StandardJMeterEngine: Запуск теста! 2018/05/21 9:12:56 INFO - jmeter.samplers.SampleEvent: Список sample_variables: [] 2018/05/21 09:12:56 INFO - jmeter.samplers.SampleEvent: Список sample_variables: [] 2018 / 05/21 9:12:56 INFO - jmeter.config.KeystoreConfig: Настройка Keystore с (преднагрузки: Правда, STARTINDEX: 0, ENDINDEX: 1, clientCertAliasVarName: 'ключ1') 2018/05/21 09:12:56 INFO - jmeter.util.JsseSSLManager: Использование протокола SSL по умолчанию: TLS 2018/05/21 09: 12:56 INFO - jmeter.util.JsseSSLManager: контекст сеанса SSL: для каждого потока 2018/05/21 9:12:56 INFO - jmeter.util.SSLManager: JmeterKeyStore Адрес: C: /Jmeter/Jmeter-3.0.0/ сертификаты / 01012018b.p12 тип PKCS12 2018/05/21 9:12:56 INFO - jmeter.util.SSLManager: KeyStore создано OK 2018/05/21 9:12:56 WARN - jmeter.util.keystore.JmeterKeyStore: не найти все требуемые псевдонимы. Start = 0, конец = 1, найдено 1 2018/05/21 9:12:56 INFO - jmeter.util.SSLManager: Всего 1 псевдонимов загружен OK из хранилища ключей 2018/05/21 09:12:56 INFO - JMeter .gui.util.JMeterMenuBar: setRunning (правда, * местные *) 2018/05/21 9:12:56 INFO - jmeter.engine.StandardJMeterEngine: Начиная ThreadGroup: 1: Тема группы 2018/05/21 09:12:56 INFO - jmeter.engine.StandardJMeterEngine: Запуск 2 темы для группы Thread Group. 2018/05/21 9:12:56 INFO - jmeter.engine.
Nishant Kutade
1

голосов
3

ответ
58

Просмотры

SQL - Unique key across 2 columns of same table?

Я использую SQL Server 2016 У меня есть таблица базы данных под названием «член». В этой таблице, у меня есть эти 3 колонок (для целей моего вопроса): idMember [INT - удостоверения личности - первичный ключ] memEmail memEmailPartner я хочу, чтобы предотвратить строку, чтобы использовать электронную почту, которая уже существует в таблице. Оба электронных колонка не является обязательной, поэтому они могут быть оставлены пустыми (NULL). Если я создаю новый член: Если не пусто, то введенные значения для «memEmail» и «memEmailPartner» (независимо друг от друга) не должны быть найдены в любых других строках в столбцах memEmail ни memEmailPartner. Так что, если я хочу, чтобы создать строку с электронной почтой ([email protected]) Я не должен найти все вхождения этого значения в memEmail или memEmailPartner. Если я обновить существующий член: я не должен найти все вхождения этого значения в memEmail или memEmailPartner, с тем исключением, что я обновление строки (idMembre), которые уже имеют значение в memEmail или memEmailPartner. - Из того, что я прочитал на Google, это должно быть возможно сделать что-то с помощью функции на основе проверочного ограничения, но я не могу сделать эту работу. Кто-нибудь есть решение моей проблемы? Спасибо.
DoumB
1

голосов
0

ответ
44

Просмотры

быстрый надежный встроенный дб для криптографического обмена?

Я строй крипто-валюту и ищу надежный и быстрый дб для сохранения входящих заказов. Имел неудачный опыт с Berkeley DB. Проверено LevelDB, но согласно википедии «LevelDB широко известен ненадежны и базы данных, которыми он управляет склонны к коррупции.» Не могу позволить себе KDB +. Какие есть варианты? Должен ли я раскрутить свой собственный магазин ключ-значение? КСТАТИ: должны иметь C / C ++ API
user3839198
1

голосов
2

ответ
49

Просмотры

Foreign key referring to primary key in the same table Mysql

FOREIGN KEY ( `created_by`) ЛИТЕРАТУРЫ` userdetails` ( `user_details_id`)) ДВИГАТЕЛЬ = InnoDB CHARSET = УМОЛЧАНИЮ latin1; Ориентируясь на «user_details_id» и «CREATED_BY» колонн, возникает конфликт, когда CREATED_BY не относится к существующему user_details_id. Значение, если я создаю свой собственный профиль с необходимыми реквизитами, мой user_details_id еще не генерируется и поэтому я не знаю, что значение для ввода в поле CREATED_BY (который в идеале предполагается содержать мою user_details_id). Я был бы признателен, если кто-нибудь может вести меня в правильном направлении, о том, как подойти к такой конфликт, и если есть способ, чтобы определить, что значение поля user_details_id может быть, прежде чем он даже генерироваться. Благодарю. конфликт возникает, когда CREATED_BY не относится к существующему user_details_id. Значение, если я создаю свой собственный профиль с необходимыми реквизитами, мой user_details_id еще не генерируется и поэтому я не знаю, что значение для ввода в поле CREATED_BY (который в идеале предполагается содержать мою user_details_id). Я был бы признателен, если кто-нибудь может вести меня в правильном направлении, о том, как подойти к такой конфликт, и если есть способ, чтобы определить, что значение поля user_details_id может быть, прежде чем он даже генерироваться. Благодарю. конфликт возникает, когда CREATED_BY не относится к существующему user_details_id. Значение, если я создаю свой собственный профиль с необходимыми реквизитами, мой user_details_id еще не генерируется и поэтому я не знаю, что значение для ввода в поле CREATED_BY (который в идеале предполагается содержать мою user_details_id). Я был бы признателен, если кто-нибудь может вести меня в правильном направлении, о том, как подойти к такой конфликт, и если есть способ, чтобы определить, что значение поля user_details_id может быть, прежде чем он даже генерироваться. Благодарю. мой user_details_id еще не генерируется и поэтому я не знаю, что значение для ввода в поле CREATED_BY (который в идеале предполагается содержать мою user_details_id). Я был бы признателен, если кто-нибудь может вести меня в правильном направлении, о том, как подойти к такой конфликт, и если есть способ, чтобы определить, что значение поля user_details_id может быть, прежде чем он даже генерироваться. Благодарю. мой user_details_id еще не генерируется и поэтому я не знаю, что значение для ввода в поле CREATED_BY (который в идеале предполагается содержать мою user_details_id). Я был бы признателен, если кто-нибудь может вести меня в правильном направлении, о том, как подойти к такой конфликт, и если есть способ, чтобы определить, что значение поля user_details_id может быть, прежде чем он даже генерироваться. Благодарю.
Abd Maj
1

голосов
1

ответ
42

Просмотры

Курсор выбора 2-го первичного ключа на db2 поле SQL для встраиваемых позиционного значения - Невозможно определить наиболее эффективными для разработки долгосрочной

У меня есть таблица SQL DB2, где первые два поля являются первичными ключами (не включая третье поле, которое является дата / время). Стол был разработан другой командой с целью сделать его универсальным. Я был доставлен в проект после того, как ключевое значение для второго поля было кодировано, когда он был вставлен на стол. Это приводит меня к этому: Теперь мы должны сделать курсор выбор с ИНЕК, который включает в себя первый первичный ключ - а затем для второго первичного ключа должна быть для только тогда, когда это конкретное значение в положении 21 на 8 байт. (И мы всегда будем знать, что это значение будет для второго поля.) Второе поле является общим полем 70 байт (буквенно-цифровой). Мой вопрос мы должны использовать LIKE символ для заявления ИНЕКЯ для второго условия первичного поля или вместо этого SUBSTR, так как мы знаем позицию значения? Я спрашиваю, потому что я сделал ОБЪЯСНИТЬ пока я не вижу разницы между ними (ни делает мой аналитик базы данных). И это за несколько миллионов записей для длинного стола 1300 байт. Тем не менее, мое беспокойство объем данных, на столе будет расти на различных системах. Поэтому производительность может стать проблемой. Только сейчас это трудно измерить разницу между LIKE и SUBSTR. Но я хотел бы сделать свою должную осмотрительность и код этого на длительный срок работы. И если есть третий вариант, пожалуйста, дайте мне знать. И это за несколько миллионов записей для длинного стола 1300 байт. Тем не менее, мое беспокойство объем данных, на столе будет расти на различных системах. Поэтому производительность может стать проблемой. Только сейчас это трудно измерить разницу между LIKE и SUBSTR. Но я хотел бы сделать свою должную осмотрительность и код этого на длительный срок работы. И если есть третий вариант, пожалуйста, дайте мне знать. И это за несколько миллионов записей для длинного стола 1300 байт. Тем не менее, мое беспокойство объем данных, на столе будет расти на различных системах. Поэтому производительность может стать проблемой. Только сейчас это трудно измерить разницу между LIKE и SUBSTR. Но я хотел бы сделать свою должную осмотрительность и код этого на длительный срок работы. И если есть третий вариант, пожалуйста, дайте мне знать.
Cindy LB
1

голосов
1

ответ
42

Просмотры

Добавление первичных ключей в T-SQL

В T-SQL учебник я видел, что есть два различных способа (по крайней мере) создания или добавления первичного ключа в таблице, причем один из них, сделав изменения на уже существующей таблице (Заказчик): USE Бронирование номера; GO ALTER TABLE dbo.Customer ADD CONSTRAINT PK_Customer PRIMARY KEY CLUSTERED (CustomerId); а другой быть на момент создания самой таблицы Customer: USE RoomReservation; GO CREATE TABLE dbo.Customer (CustomerId INT NOT NULL CONSTRAINT PK_Customer первичный ключ, FirstName NVARCHAR (50) NOT NULL, LastName NVARCHAR (50) NOT NULL); Мой вопрос заключается в следующем: CUSTOMERID и PK_Customer 2 разные названия одного и того же первичного ключа atribute? Являются ли они 2 разные атрибуты, которые являются копиями одного и того же значения? И, как в названии или в стоимостном выражении, что является использование для такого рода избыточности?
Lina Silveira
1

голосов
1

ответ
27

Просмотры

Сделайте собственные комбинации клавиш для облегчения naviagation в коде

В последнее время я думал, что это было бы хорошо, если бы был способ использовать кнопки, как влево, вправо, вниз, вверх, POS1 или END без перемещения руки прочь от главной же раскладки области. Например, я хотел бы нажать LCtrl + SPACE + A вместо ВЛЕВО. Существует способ определить такую ​​комбинацию ключа в моем IDE (PyCharm). Это работает, но я должен освободить все три ключа, прежде чем я могу пойти налево снова, что, очевидно, не очень полезно, потому что иногда вы должны нажмите кнопку влево несколько раз. Поэтому я хотел бы иметь, что до тех пор, как я нажать и удерживать LCtrl + SPACE и любой из WASD работать UPLEFTDOWNRIGHT respectivly.
caluthan
1

голосов
1

ответ
79

Просмотры

ключ Дубликат когда я создал новый объект - Symfony

Одобренные ванты простой и быстрый вопрос, как я могу создать кратные новые сущности без ошибки «повторяющиеся записи ... для ключа" UNIQ»я делаю это так: $ userInterest_1 = новый UserInterest (); $ UserInterest_2 = новый UserInterest (); $ UserInterest_3 = новый UserInterest (); Но UserInterest 1 2 и 3 имеет тот же идентификатор ключа, так как я могу создать 3 сущности, не имея тот же ключ: (я пытался упорствовать и промыть, прежде чем заново создать тот, который не работает) ооочень это все, если вы хотите, я положил все мой код, если это может помочь ТНХ для всех, которые будут пытаться ответить :) $ em_category = $ this-> getDoctrine () -> getManager (); $ Эм = $ this-> getDoctrine () -> getManager (); $ UserInterest_1 = новый UserInterest (); $ UserInterest_1-> SETUSER ($ пользователю); $ Category_1 = $ em_category-> getRepository ( 'AppBundle: Категория' ) -> findOneBy (массив ( 'ID' => ($ request-> Get ( 'id_category_1')))); если ($ category_1 === NULL) {вернуть новый ([=> "ложный", 'сообщение' Успех "=> "catégorie 1 не renseignée"]) JsonResponse; } $ UserInterest_1-> setContent ($ request-> Get ( 'content_1')); $ UserInterest_1-> setCategory ($ category_1); $ Em-> сохраняются ($ userInterest_1); $ Em-> заподлицо (); $ UserInterest_2 = новый UserInterest (); $ UserInterest_2-> SETUSER ($ пользователю); $ Category_2 = $ em_category-> getRepository ( 'AppBundle: Категория') -> findOneBy (массив ( 'ID' => ($ request-> Get ( 'id_category_2')))); если ($ category_2 === NULL) {вернуть новый JsonResponse ([ 'успех' => "ложь", 'Сообщение' => "Категория 2 не renseignée"]); } $ UserInterest_2-> setContent ($ request-> Get ( 'content_2')); $ UserInterest_2-> setCategory ($ category_2); $ Em-> сохраняются ($ userInterest_2); $ Em-> заподлицо (); $ UserInterest_3 = новый UserInterest (); $ UserInterest_3-> SETUSER ($ пользователю); $ Category_3 = $ em_category-> getRepository ( 'AppBundle: Категория') -> findOneBy (массив ( 'ID' => ($ request-> Get ( 'id_category_3')))); если ($ category_3 === NULL) {вернуть новый ([=> "ложный", 'сообщение' Успех "=> "catégorie 3 не renseignée"]) JsonResponse; } $ UserInterest_3-> setContent ($ request-> Get ( 'content_3')); $ UserInterest_3-> setCategory ($ category_3); $ Em-> сохраняются ($ userInterest_3); $ Em-> заподлицо (); Мой метод POST JSON выглядеть следующим образом: { "имя пользователя": "eTytyoftyooy6o7o", "пароль": "Tsvyfviftypooyotô7uo", "электронная почта": "[email protected]", "рождение": «1999-04-26T18: 25: 43-05: 00" , "id_category_1": "1", "content_1": "Собака", "id_category_2": "4", "content_2": "Теннис", "id_category_3": "5", " content_3" : „Netflix“} или, может быть, я должен сделать что-то подобное (но я не знаю, как получить arrray): { „имя“: „eTytyoftyooy6o7o“, „пароль“: „Tsvyfviftypooyotô7uo“, „электронная почта“: «[email protected] ) * @ORM \ Entity * / класс UserInterest {/ ** * @var строка * @ORM \ Column (имя = "содержание", тип = "строка", длина = 255, обнуляемым = ложь) * / частный $ содержание ; / ** * @var целое число * @ORM \ Column (имя = "идентификатор", тип = "целое", обнуляемым = ложь) * @ORM \ Id () * @ORM \ GeneratedValue (стратегия = "AUTO") * / защищенный $ ID; / ** * @ORM \ ManyToOne (targetEntity = "категория", inversedBy = "intrests") * / частные $ категории; / ** * @var \ AppBundle \ Entity \ User * @ORM \ GeneratedValue (стратегия = "NONE") * @ORM \ OneToOne (targetEntity = "Пользователь") * @ORM \ JoinColumns ({* @ORM \ JoinColumn ( Name = "user_id", referencedColumnName = "идентификатор") *}) * / частный $ пользователя; / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return INT * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param INT $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; } / ** * @return Пользователь * / функция GetUser общественности () {вернуть $ this-> пользователя; } / ** * @param Пользователь $ Пользователь * / общественная функция SETUSER ($ пользователю) {$ this-> пользователь = $ пользователю; } / ** * @return смешанные * / общественная функция getCategory () {вернуть $ this-> категория; } / ** * @param смешанные $ категории * / функция setCategory общественности ($ категории) {$ this-> категория = $ категории; }} Category объект: / ** * * * UserInterest @ORM \ Table (имя = "категория") * @ORM \ Entity * / класс Категория {/ ** * @var строка * @ORM \ Column (имя =» content_c», тип = "строка", длина = 255, обнуляемое = ложь) * / частный $ содержание; / ** * @var целое число * @ORM \ Column (имя = "идентификатор", тип = "целое", обнуляемым = ложь) * @ORM \ Id () * @ORM \ GeneratedValue (стратегия = "AUTO") * / защищенный $ ID; / ** * @ORM \ OneToMany (targetEntity = "UserInterest", mappedBy = "категория") * / $ защищенные интересы; / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return целое число * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param пользователя $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; }} обнуляемым = ложь) * @ORM \ Id () * @ORM \ GeneratedValue (стратегия = "AUTO") * / защищенный $ ID; / ** * @ORM \ OneToMany (targetEntity = "UserInterest", mappedBy = "категория") * / $ защищенные интересы; / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return целое число * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param пользователя $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; }} обнуляемым = ложь) * @ORM \ Id () * @ORM \ GeneratedValue (стратегия = "AUTO") * / защищенный $ ID; / ** * @ORM \ OneToMany (targetEntity = "UserInterest", mappedBy = "категория") * / $ защищенные интересы; / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return целое число * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param пользователя $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; }} / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return целое число * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param пользователя $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; }} / ** * @return строка * / функция getContent общественности () {вернуть $ this-> содержание; } / ** * @param строка $ содержание * / функция setContent общественности ($ содержание) {$ this-> содержание = $ содержание; } / ** * @return целое число * / функция GetId общественности () {вернуть $ this-> идентификатор; } / ** * @param пользователя $ ID * / функция SETID общественности ($ ID) {$ this-> ID = $ идентификатор; }}
Lee Bej
1

голосов
0

ответ
311

Просмотры

Как получить доступ к панели меню (Файл, Правка, Вид и т.д.) в Блистательной-Text-3 с клавиатуры в Ubuntu 18.04?

Я использую Sublime Text 3 в Ubuntu 18.04. На самом деле, я спрятался в строке меню Sublime Text 3. Теперь я хочу использовать строку меню. Но я не могу получить доступ к панели меню с помощью клавиши ALT. Я также попытался повторно установить это. Но это не сработало.
Bhuvan Gandhi
1

голосов
1

ответ
26

Просмотры

Шифрование PGP файла

Использование Bouncy Castle зашифровать файл, у меня возникли проблемы генерации открытого / закрытого ключей. Основные потребности общества быть в OpenSSH или RFC4716 формате проблема, когда я использую SSH-кейген для создания ключей, они не могут быть использованы для шифрования файла. Почему это? Я даже использовал SSH-кейген экспортировать ключи в формате RFC4716 и до сих пор я не смог использовать его для шифрования файла.
Nupaul
1

голосов
0

ответ
8

Просмотры

Составной ключ вставки в codeginiter

У меня есть составной ключ, созданный на (courseID, lessonID, studID) на столе. Я пытаюсь вставить повторяющееся значение композитных ключевых столбцов, очевидно, мы получим дубликат ошибки ввода. То, что я пытаюсь добиться, чтобы избежать проверок его перед установкой, если есть значение на составном ключе или нет. есть способ, чтобы избежать двойного шага проверки! CodeIgniter не хватает что-то вроде вставки игнорировать. есть способ исключить повторяющиеся ошибки вставки с CodeIgniter стороны, поскольку она является составным ключом!
saikiran
1

голосов
0

ответ
262

Просмотры

How to hide API key in public open source project?

У меня есть проблема, что я хочу, чтобы запрограммировать программу, которая будет иметь взаимодействовать с некоторыми 3rd Party веб-сервиса. Эта услуга требует конкретных действий, которые клиент (моя программа) разрешает себя, как комбинация имени пользователя / пароля, а также знак. Имя пользователя / пароль специфична пользователю моей программы и нет проблемы здесь. Маркер (ключ API) является проблемой. Предположим, я хочу, чтобы моя программа с открытым исходным кодом и поставить свои источники на некотором общедоступном сервере. Конечно, я не могу жёстко (или включить) ключ API. В противном случае я бы не только разорвать контракт, чтобы не опубликовать его, но и любой (не авторизован) использование будет падать обратно на меня и мою программу. Согласно моим исследованиям (например, Открытый исходный код проект, но держать ключи API конфиденциальными или Как скрыть ключ API в моем приложении Electron?) Я мог бы поставить прокси-сервер (закрытый исходный код) между 3-й партией API и моей программой. Теперь я вижу две больших открытых двери для плохих настроенных людей напасть на этот сценарий: В исходном коде основной программы с открытым исходным кодом, любое взаимодействие с прокси-сервером может быть в буквальном смысле читать из исходного кода. Злоумышленник может раскошелиться моей основной программой и использовать одни и тот же вызовы на прокси-сервере, но с ослабленными данными. Тот же результат, как и открыто доступные ключи: Моя программа будет попасть в неприятность из-за плохие действия / навыки программирования других людей. Я мог бы добавить имя пользователя / пароль для аутентификации программы против моего прокси. то я предлагаю (бесплатно в использовании) регистрации к прокси-серверу, с тем чтобы моя программа будет использоваться продуктивно. Это добавляет дополнительный уровень аутентификации и сложности, но это выполнимо. Любой действительно хочет, чтобы делать плохие вещи, тем не менее, будет иметь возможность получить пароль и использовать свою собственную вилку, чтобы получить доступ к прокси. Я не могу поставить мои собственные ключи / шифрования / .... в любом месте в качестве необходимой рутины для расшифровки / имитируют эти будут видны в открытом считанноге проекта. Так что теперь я просто переложил проблему, чтобы обнаружить, если работает программное обеспечение является оригинальным один, с 3-го участника к прокси-серверу. У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? Любой действительно хочет, чтобы делать плохие вещи, тем не менее, будет иметь возможность получить пароль и использовать свою собственную вилку, чтобы получить доступ к прокси. Я не могу поставить мои собственные ключи / шифрования / .... в любом месте в качестве необходимой рутины для расшифровки / имитируют эти будут видны в открытом считанноге проекта. Так что теперь я просто переложил проблему, чтобы обнаружить, если работает программное обеспечение является оригинальным один, с 3-го участника к прокси-серверу. У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? Любой действительно хочет, чтобы делать плохие вещи, тем не менее, будет иметь возможность получить пароль и использовать свою собственную вилку, чтобы получить доступ к прокси. Я не могу поставить мои собственные ключи / шифрования / .... в любом месте в качестве необходимой рутины для расшифровки / имитируют эти будут видны в открытом считанноге проекта. Так что теперь я просто переложил проблему, чтобы обнаружить, если работает программное обеспечение является оригинальным один, с 3-го участника к прокси-серверу. У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? в любом месте в качестве необходимой рутины для расшифровки / имитирует эти будут видны в открытом считанноге проекта. Так что теперь я просто переложил проблему, чтобы обнаружить, если работает программное обеспечение является оригинальным один, с 3-го участника к прокси-серверу. У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? в любом месте в качестве необходимой рутины для расшифровки / имитирует эти будут видны в открытом считанноге проекта. Так что теперь я просто переложил проблему, чтобы обнаружить, если работает программное обеспечение является оригинальным один, с 3-го участника к прокси-серверу. У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)? У меня есть только то преимущество, что я мог бы, возможно, знаете, какой пользователь был плохим парнем, и запретить его, но это все, что я могу сделать в то время как мой маркер может получить аннулирован этим вопросом. Я сожалею, но я не нашел полезное решения в Интернете для этой конкретной проблемы. Как я могу атаковать эту проблему (на абстрактном уровне)?
Christian Wolf
1

голосов
0

ответ
43

Просмотры

Multidimensional array key intersection add value on condition both values are equal in php

I have two multidimensional arrays $array1 = Array ( [a1] => Array ( [a_name] => aaaaa [a_value] => aaa ) [b1] => Array ( [b_name] => zzzzz [b_value] => bbb ) [c1] => Array ( [c_name] => ccccc [c_value] => ccc ) ) $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ) ); Here i want to append both if array2 match value is equal to array1 with key and value, i.e, both are matching or both are not matching within array2 function recursive_array_intersect_key(array $array1, array $array2) { $array1 = array_intersect_key($array1, $array2); foreach ($array1 as $key => &$value) { if (is_array($value) && is_array($array2[$key])) { $value = recursive_array_intersect_key($value, $array2[$key]); } } return $array2; } Expectet output as if array2 matched with array2 $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ), [status] => Both Matched ); or for not matched array2 with array2 $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ), [status] => Not Matched );
VijayaKrishna
1

голосов
0

ответ
247

Просмотры

Безопасное хранение GPG закрытого ключа в Дженкинс?

Я пытаюсь сохранить мой GPG закрытый ключ в Дженкинс, так что я могу использовать его для входа оборотов в минуту пакетов и репозиториев. Это прекрасно работает, но я не в состоянии запутать ключ так, чтобы он не получает отображаться в журналах Дженкинс. Я пытался добавить его в качестве глобального использования учетных данных плагинов учетных данных, однако, когда я вставить его в и затем глазное яблоко его с помощью значка прочь направо я вижу только в верхней строке ------ НАЧАТЬ PGP PRIVATE KEY BLOCK - ---- Кроме того (и я должен быть действительно немой здесь), когда я кот закрытый ключ в моей работе трубопровода я просто вижу идентификатор ключа, вместо фактического секрет !? Я подумал, что Дженкинс был быть умным и запутыванием ключа, заменив его с удостоверением, но я пытался «голова» и «Grep», и я все еще получаю то же самое. Где лучшее место для хранения закрытого ключа GPG в Дженкинс?
Steve Button
1

голосов
1

ответ
315

Просмотры

Apache Shiro и JWT Проблемы реализации при использовании различной Тайны Per User

Я работаю над приложением, где я осваивала Java Restful Backend Sercvice с проверкой подлинности Apache Shiro. Теперь я могу получить пользователь зарегистрироваться и войти успешно используя пароль и соль при поддержке моей базы данных. Теперь я хочу, чтобы улучшить путем добавления аутентификации JWT. Сценарий будет: пользователь пытается войти в систему, используя имя пользователя и пароль После успешного учетные данные посылаются и Shiro журналы в пользователя, бэкенд генерирует JWT маркер и отправляет его обратно клиенту в каждом новом клиенте запрос отправляет JWT маркер, полученный в предыдущем шаге на сервер для проверки подлинности. Shiro фильтр проверяет маркер, содержащийся в запросе. Если действительный procceed, другое сообщение об ошибке возврата. Для реализации этой функции я следуют: JSON Web токен с Apache Shiro Вся работа выполняется в JWTVerifyingFilter: общественный класс JWTVerifyingFilter расширяет AccessControlFilter {@Override защищен булево isAccessAllowed (запрос ServletRequest, ServletResponse arg1, arg2 Объекта) бросает исключение {булево accessAllowed = ложь; HttpServletRequest HTTPRequest = (HttpServletRequest) запроса; Строка JWT = httpRequest.getHeader ( "Авторизация"); если (! JWT == NULL || jwt.startsWith ( "Знаменосец")) {вернуться accessAllowed; } JWT = jwt.substring (jwt.indexOf (»«)); Строка имя пользователя = Jwts.parser () setSigningKey (DatatypeConverter.parseBase64Binary ( "секретные")) .parseClaimsJws (JWT) .getBody () getSubject ()..; Строка SubjectName = (строка) SecurityUtils.getSubject () getPrincipal (). если (имя пользователя. равен (SubjectName)) {accessAllowed = TRUE; } Вернуть accessAllowed; } @Override защищен булево onAccessDenied (ServletRequest arg0, ServletResponse арг1) бросает исключение {HttpServletResponse ответ = (HttpServletResponse) arg1; response.setStatus (HttpServletResponse.SC_FORBIDDEN); вернуться ложным; }} Однако, я столкнулся со следующими проблемами: Как вы можете видеть секрет, используемый для создания JWT подписи того же «секрет» для всех пользователей. В каждом примере я нашел в отношении JWT маркеров формирования подписи и аутентификации, они используют один и тот же секрет для всех пользователей при создании JWT подписи. В моей реализации я хотел бы использовать соль сохраненной для каждого пользователя в базе данных для создания JWT подписи, а затем проверить его. Таким образом, при создании JWT для каждого пользователя я использую следующую функцию, которая использует соль пользователя для создания JWT подписи. общественный класс JWTProvider {частный JWTProvider () {} открытый статические строки getJWTToken (пользователь User) {System.out.println ( "JWT Provider FIRED"); SignatureAlgorithm sigAlg = SignatureAlgorithm.HS512; байт [] apiKeySecretBytes = Base64.decode (user.getSalt ()); Ключ signingKey = новые SecretKeySpec (apiKeySecretBytes, sigAlg.getJcaName ()); дата Date = новая дата (); JwtBuilder строитель = Jwts.builder () .setSubject (user.getUsername ()) .claim ( "FirstName", user.getFirstName) () .claim ( "LastName", user.getLastName ()) .setIssuedAt (дата) .setExpiration (новая дата (дата. GetTime () + 24 * 60 * 60 * 1000)) // Срок действия в один день .signWith (sigAlg, signingKey); System.out.println ( "Сформирован JWT:" + builder.compact ()); вернуть builder.compact (); }} В моем случае, чтобы проверить JWT подпись, мне нужно получить соль для каждого пользователя. Таким образом, я изменил реализацию на о JWTVerifyingFilter на следующее: открытый класс JWTVerifyingFilter расширяет AccessControlFilter {@Override защищен булево isAccessAllowed (ServletRequest ServletRequest, ServletResponse ServletResponse, Object о) {System.out.println ( "JWT Verifier Уволен ..... «); HttpServletRequest HTTPRequest = (HttpServletRequest) ServletRequest; HttpServletResponse ответ = ServletResponse (HttpServletResponse); Строка JWT = httpRequest.getHeader (» parseBase64Binary ( "секрет")) .parseClaimsJws (JWT) .getBody () getSubject (). System.out.println ( "UserNAeme:" + имя пользователя); System.out.println ( "Тема:" + SubjectName); если (username.equals (SubjectName)) {response.setStatus (HttpServletResponse.SC_OK); возвращает истину; } Response.setStatus (HttpServletResponse.SC_UNAUTHORIZED); вернуться ложным; } @Override защищен булево onAccessDenied (ServletRequest ServletRequest, ServletResponse ServletResponse) бросает исключение {HttpServletResponse ответ = (HttpServletResponse) ServletResponse; response.setStatus (HttpServletResponse.SC_FORBIDDEN); вернуться ложным; }} Однако вызова, SecurityUtils.getSubject Apache Сиро () возвращает объект пустой. Я пытался реализовать Singleton класс, чтобы всегда один и тот же предмет из SecurityUtils (если есть один предмет возвращения его еще называют SecurityUtils.getSubject ()) не имели успеха. В этой последней реализации только один пользователь может войти в систему. С помощью другого браузера бэкенд сообщил пользователь уже был зарегистрирован с использованием учетных данных тем пользователем, ранее зарегистрированного другим браузером. Вопросы: Это нормально, всегда использовать ту же тайну аутентификации JWT для всех пользователей ?? Где Apache Shiro хранит информацию о зарегистрированных пользователях, и как я могу получить доступ к ним из успокоительной серверной службы Java ?? Любой полный пример Apache Shiro с использованием различных JWT секретных фраз для каждого пользователя ?? Каков наилучший способ осуществить это. мне нужно делать в памяти хранения, как Redis держать авторизованных пользователей с их соли при входе в систему и получить их соли оттуда в последующих запросах ?? Заранее спасибо за любые ответы.
mixtou
1

голосов
0

ответ
42

Просмотры

UWP Cryptographic Interop … Issues with Signatures

Мне нужно Interop между Java / OSX / IOS / Windows. Я использую следующий: RSA / ECP / PKCS1 - 2048 битный ключ AES / CBC / pkcs7 - 256 битого ключ SHA512 для хеша контента и цифровых подписей я использую libray OpenSSL в процессе разработки, и теперь хочу, чтобы перейти к стандартной библиотеке C #, так что я может выпустить в магазин приложений Windows. У меня есть следующий рабочий локально и совместной работе с другими платформами: SHA512 хэш, AES шифрования / дешифрования, RSA шифрования / дешифрования. Что осталось Подпись / Проверка. Это работает локально, но порождает другую подпись, то все остальные платформы. Так что я в недоумении! На других plaforms для подписания зашифровать SHA512 хэш с помощью RSA Private Key. В Windows UWP: Используя алгоритм AsymmetricAlgorithmNames.RsaPkcs1, вы не можете зашифровать с помощью закрытого ключа. Операция не поддерживается. Используя алгоритм AsymmetricAlgorithmNames.RsaSignPkcs1Sha512, я могу подписать Hash с помощью: OutData = CryptographicEngine.SignHashedData (mSignPrivateKey, входных данных,); Я предполагаю, что этот вызов не делает никакого хэширования, несмотря на название алгоритма, так как я уже предоставил хэш в буфере входных данных,. Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Алгоритм RsaSignPkcs1Sha512, я могу подписать Hash с помощью: OutData = CryptographicEngine.SignHashedData (mSignPrivateKey, входных данных,); Я предполагаю, что этот вызов не делает никакого хэширования, несмотря на название алгоритма, так как я уже предоставил хэш в буфере входных данных,. Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Алгоритм RsaSignPkcs1Sha512, я могу подписать Hash с помощью: OutData = CryptographicEngine.SignHashedData (mSignPrivateKey, входных данных,); Я предполагаю, что этот вызов не делает никакого хэширования, несмотря на название алгоритма, так как я уже предоставил хэш в буфере входных данных,. Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? SignHashedData (mSignPrivateKey, входные данные,); Я предполагаю, что этот вызов не делает никакого хэширования, несмотря на название алгоритма, так как я уже предоставил хэш в буфере входных данных,. Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? SignHashedData (mSignPrivateKey, входные данные,); Я предполагаю, что этот вызов не делает никакого хэширования, несмотря на название алгоритма, так как я уже предоставил хэш в буфере входных данных,. Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Но это порождает другую подпись, чем все другие платформы. Для тестирования я создать пару ключей в библиотеке OpenSSL и получил кодированный закрытый ключ. Тогда для Windows, UWP создать секретный ключ, используя соответствующий алгоритм: mSignPrivateKey = sSignAlg.ImportKeyPair (encodedkey); Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так? Эта стратегия работала для тестирования RSA шифрования / дешифрования с помощью: mEncryptionPrivateKey = sRsaAlg.ImportKeyPair (encodedkey); Любые предложения о том, где я, возможно, пошло не так?
r.t.s.
1

голосов
1

ответ
56

Просмотры

Разбираем Jolokia выход с JQ

У меня есть брокера Apache Artemis, из которых я могу получить некоторую информацию управления через Jolokia. Этот ответ в формате JSON; У меня также есть JQ делать «JSon вещи» с ним. локон -s -X GET --url 'HTTP: // локальный: 8161 / консоль / Jolokia / чтение / org.apache.activemq.artemis: * Это работает; и обеспечивает ответ JSON. Я хочу, чтобы сделать свой род общего сценария, чтобы проверить некоторые значения этого ответа; отсюда несколько вопросов: (Для простоты тестирования я сохранил ответ в файл broker.json, как правило, я бы просто труба на выходе из ротора в JQ или хранить его в переменной, в зависимости от того, как часто JQ должен быть называется) One из ключей я хочу запросить я могу получить так: «„значение“„org.apache.activemq.artemis: брокер = \“. broker1 \„“» JQ broker.json Однако, в более общем сценарии, я победил' знаю имя брокера (который является «broker1» здесь); есть какой-то способ, которым я могу символы подстановки ключ, как это: «org.apache.activemq.artemis: брокер = \» * \ «»? Мои попытки до сих пор не дали мне ничего Второй вопрос немного сложнее, я думаю. В ответе есть поле, которое может быть обнаружено с помощью запроса .request.timestamp значения в секундах с начала эпохи. На брокера стоят очереди, и некоторые из них могут иметь сообщения; Я хочу, чтобы найти те, которые имеют сообщения старше, чем, скажем, 5 минут. Я могу найти один такой объект с этим ключом:. JQ» "значение". "Org.apache.activemq.artemis: адрес = \" my.queue \», брокер = \ "broker1 \", компонент = адрес, очереди = \ "my.queue \", маршрутизации типа = \ "нечеткий \", субкомпонент = очередь "» брокер. JSON Этого объект содержит два ключа можно использовать для этой цели: - FirstMessageAge: возраст в мсе - FirstMessageTimestamp: метки время в миллисекундах, начиная с эпохи. Как бы я запрос для этого? В идеале я хотел бы получить ответ «my.queue имеет сообщение старше X»; где my.queue также может быть получен от того, ключа «Адрес» или «Имя» Artemis использует адрес и очереди в качестве отдельных лиц; для всех практических целей здесь, оба имеют такое же имя. Я пытаюсь сделать (простой) скрипт, который может периодически контролировать здоровье брокера (не слишком много сообщений на очереди слишком долго, очередь, имеющие потребитель, такие вещи, как, что, которые все могут быть получены из этого одного вызова остальных, я думаю, что с ответами на поставленные выше вопросы, я должен быть в состоянии выяснить, как получить это. возраст в мс - FirstMessageTimestamp: метка времени в миллисекундах, начиная с эпохи. Как бы я запрос для этого? В идеале я хотел бы получить ответ «my.queue имеет сообщение старше X»; где my.queue также может быть получен от того, ключа «Адрес» или «Имя» Artemis использует адрес и очереди в качестве отдельных лиц; для всех практических целей здесь, оба имеют такое же имя. Я пытаюсь сделать (простой) скрипт, который может периодически контролировать здоровье брокера (не слишком много сообщений на очереди слишком долго, очередь, имеющие потребитель, такие вещи, как, что, которые все могут быть получены из этого одного вызова остальных, я думаю, что с ответами на поставленные выше вопросы, я должен быть в состоянии выяснить, как получить это. возраст в мс - FirstMessageTimestamp: метка времени в миллисекундах, начиная с эпохи. Как бы я запрос для этого? В идеале я хотел бы получить ответ «my.queue имеет сообщение старше X»; где my.queue также может быть получен от того, ключа «Адрес» или «Имя» Artemis использует адрес и очереди в качестве отдельных лиц; для всех практических целей здесь, оба имеют такое же имя. Я пытаюсь сделать (простой) скрипт, который может периодически контролировать здоровье брокера (не слишком много сообщений на очереди слишком долго, очередь, имеющие потребитель, такие вещи, как, что, которые все могут быть получены из этого одного вызова остальных, я думаю, что с ответами на поставленные выше вопросы, я должен быть в состоянии выяснить, как получить это.
Michiel
1

голосов
1

ответ
33

Просмотры

Хранение симметричного ключа для остальной части базы данных в то время как encrpted в самой базе данных

Вслед за мой вопрос здесь я теперь нужно хранить симметричный ключ безопасно. После рассмотрения вариантов, это звучит, как это может быть хорошим вариантом: Установка: Существует таблица в БД, которая имеет два поля php_key - хранит симметрично шифруется симметричным ключом, который используется для других таблиц php_key_hash - хранит HMAC симметричного ключа другие таблицы (как указано в другой должности): last_name - симметрично зашифрованное значение шифруются с помощью ключа после того, как в незашифрованном виде из php_key last_name_hash - HMAC из last_name Входа / Safe ограждения ключа: 1) пользователь входит в системе - (несвязанный) пользователь / пасс просто хранится в БД (передача является HMAC) 2) После входа в систему пользователь представлен с экраном, где они должны ввести другой пароль - это пароль будет совместно со всеми сотрудниками компании (всего 5 сотрудников, так легко запомнить) , Назовём этот key1. 3) То есть пароль HMAC выполняется, и сравнивается с php_key_hash в БД. Если это не удается, я могу просто ошибка пользователя здесь. 4) Если он совпадает, то тянуть вниз php_key, расшифровать его, используя тот же пароль, сохранить его в переменной сеанса. В этот момент ключ хранится в памяти на сервере и будет уничтожен, когда пользователь выходит из системы. Назовём этот key2. После этого нормальная расшифровка полей происходит, как и в других пост Это кажется действительно безопасным для меня, потому что 1) key2 хранится на другом сервере, чем веб-сервер 2) key2 сама зашифрован - он никогда не хранится в виде обычного текста 3) key1 является не находится не где в коде или в файловой системе или в БД - это единственный известный в сознании работников 4) Вы должны войти на сайт в основном в два раза (один с вашим логином, снова ключом1) 5) Использование переменного сеанса означает key2 сохраняются только в памяти, и только на сервере, и уничтожаются после завершения сеанса 6) Я могу просто повторно ключ key1 в любое время, если нам нужно изменить кодовую фразу - например, если сотрудник увольняется или мы думаем, что это скомпрометирована потенциальные проблемы AKA Мои вопросы (наконец) Во-первых, я не буду ни в коем случае эксперт по вопросам безопасности, следовательно, почему я бы так же, как, по мнению кого-то, кто лучше меня в безопасности :) 1 ) Я потенциально хранения зашифрованного симметричного ключа (Клавишу2) в одной и той же базе данных, где она будет использоваться для расшифровки других полей. Я не» т думает, что это является проблемой, так как он сам по себе шифруется? 2) Сохранение симметричного ключа (Клавишу2) в переменной сеанса - потенциальные проблемы с людьми, серфинг RAM? Возможно, было бы лучше всего хранить key1 в переменном сеансе, а затем пройти через двойную дешифрованию каждый раз (но, вероятно, медленно)? Могу ли я быть более осторожным?
Element Zero
1

голосов
1

ответ
42

Просмотры

Как вычитать значения из всех ключей в парном РДД?

У меня есть пара РДД [(Int, Array [Double])] и я хочу для каждого ключа, чтобы вычитать все остальные массивы из своих собственных. Например, если мой рдд является: [(1, array_1 [Double])] [(2, array_2 [Double])] [(3, Array_3 [Double])] Я хочу: [(1, Sum (array_1 [Double] - Array_i [Двойной]))], где I = 2,3 [(2, Сумма (array_2 [Двойной] - Array_i [Двойной]))], где I = 1,3 [(3, сумма (Array_3 [Двойной] - Array_i [Double]))], где я = 1,2 Я думал о преобразовании ДРР в РДД [(Int, (Array, List (Array)))], но я не знаю, есть ли мог что-то проще, чем , Любая идея для решения? Ответ: Val S = rdd.cartesian (РДД) .filter {случай (а, б) => a._1 = b._1!} .Map (х => (x._1._1, (x._1 ._2-x._2._2))) .reduceByKey (_ + _).
Tmpoul
1

голосов
0

ответ
188

Просмотры

Читайте SecretKey из JCEKS хранилища ключей | Джава

Я пытаюсь читать секретный ключ (парольную фразу) из JCEKS хранилища ключей с помощью Java-код, код работает для JKS хранилища ключей, но не для JCEKS ключей. Я использую ibm_sdk71 в качестве выполнения (в связи с требованиями проекта). общественности статической (вход String, String keystoreLocation, String keyStorePassword, String keyPP1) Строка getPasswordFromKeystore бросает KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, InvalidKeySpecException, java.security.UnrecoverableEntryException {обугливается [] пароль = "новый" .toCharArray (); FileInputStream FIN = новый FileInputStream (keystoreLocation); KeyStore.PasswordProtection keyStorePP = новый KeyStore.PasswordProtection (keyStorePassword.toCharArray ()); KeyStore.PasswordProtection keyPP = новый KeyStore.PasswordProtection (keyPP1.toCharArray ()); KeyStore кс = KeyStore.getInstance (» } Цените никаких указаний. С уважением } Цените никаких указаний. С уважением
niting
1

голосов
1

ответ
21

Просмотры

Добавление результатов для цикла с тем же ключом в гнездовой словаре

У меня есть словарь, где он включает в себя несколько суб-словарей в нем. Каждый суб-словарь имеет много ключей. После запуска для цикла с условием, если слишком, результаты генерируются. Я хочу, чтобы добавить все результаты под нужную клавишу; но все, что на самом деле делает мой код добавление результата последней итерации цикла, таким образом заменяя значение предыдущей итерации. Но, на самом деле, я хочу, чтобы напечатать все результаты. для элемента в list1: #Item является кортеж & песни1 имеет кортежи в ней, если пункт == node_pair: #node пара другой кортеж high_p [I] [ «ссылка»] = link_name # «ссылка» является ключом требуемого выхода: " ссылки ": [link_name1, link_name2, link_name3], что я получаю: "ссылки": link_name3 Пожалуйста, руководство меня ..
1

голосов
0

ответ
41

Просмотры

XSD - Сделать элемент установлен уникальный

У меня есть набор элементов, которые в целом должны быть уникальными и я не знаю, как получить это подтверждено в моей XSD. Например, все элементы в «IID_INTERFACE_ID» может быть такой же, но если элемент «UI64_VERSION» не то же самое, следует считать действительным. Приведенный ниже пример является недопустимым, так как все внутренние элементы двух разных имеют те же значения: 29e4223c 2d64 45b4 94 D9 шд фа FD е3 б1 07 0000000000000000 29e4223c 2d64 45b4 94 D9 шд фа FD е3 б1 07 0000000000000000 Но если, по меньшей мере, один элемент имеет различные значение, оно будет действовать: 29e4223c 2d64 45b4 94 D9 шд фа FD е3 б1 07 0000000000000000 29e4223c 2d64 45b4 94 D9 шд фа FD е3 b1 07 0000000000000001 элемент PLUGIN_PRIMAR_KEY встроен в какой-то Отер элемент, который содержит один набор данных.
user3149350
1

голосов
0

ответ
27

Просмотры

Missing privilege for “insert […] on duplicate key update” statement, but enough for “insert” and “update” seperatly

Я попытался уменьшить права пользователя базы данных имеет до минимума, необходимого. Это я заметил следующую ситуацию: у меня есть тест базы данных и пользователь пользователя со следующими правами: отозвать все права, GRANT OPTION FROM «пользователя» @ «%»; GRANT SELECT, INSERT ON test.test TO 'пользователя' @ '%'; GRANT UPDATE (у) ON test.test TO 'пользователя' @ '%'; Тестовая таблица (InnoDB) определяется как создать тест таблицы (х Int нуль, у ИНТ нуль); создать уникальный индекс test_x_uindex на тест (х); Я могу запустить вставки и обновления запросов, как вставить в тесте (х, у) VALUES (1,1), (2,2); ОБНОВЛЕНИЕ тестового набора у = 3, где х = 1; Но работает вставить в тесте (х, у) VALUES (2,4) дубликатом ключа ОБНОВЛЕНИЕ у = ЗНАЧЕНИЯ (у); Результаты в ERROR 1143 (42000): команда UPDATE отказывали для пользователя «сап» @ «локальный» для столбца «х» в «тесте» таблицы То же самое происходит, если оператор не будет на самом деле обновить что-то, а просто вставить новую строку. Это кажется немного странным. Я не мог найти, непосредственно связанное сообщение об ошибке. Просто что-то старше для MySQL (закрыт, но кто-то сказал, что это на самом деле не фиксированы. Я не проверял.). В документации MySQL 8.0 Упоминание, что привилегии обновления необходимы только для измененных столбцов. Документация MariaDB не говоря уже о каких-либо требований привилегий. Должна ли я что-то пропустил? Все это было проверено на MariaDB 10.2.16. В документации MySQL 8.0 Упоминание, что привилегии обновления необходимы только для измененных столбцов. Документация MariaDB не говоря уже о каких-либо требований привилегий. Должна ли я что-то пропустил? Все это было проверено на MariaDB 10.2.16. В документации MySQL 8.0 Упоминание, что привилегии обновления необходимы только для измененных столбцов. Документация MariaDB не говоря уже о каких-либо требований привилегий. Должна ли я что-то пропустил? Все это было проверено на MariaDB 10.2.16.
AbcAeffchen
1

голосов
1

ответ
76

Просмотры

Как объединить два словаря на основе их ключей и значений в Python?

У меня есть проблема с объединением двух словарей в Python на основе его ключей и значений. У меня есть следующий случай: dictionary_1 = {1 {Дом: красный, индекс = 1}, 2 {Дом: синий, индекс = 2}, 3 {Дом: зеленый, индекс = 3}} dictionary_2 = {4 {Высота: 3 индекс = 3}, 5 {высота: 5, индекс = 1}, 6 {Высота: 6, индекс = 2} Так, например, в "dictionary_1", у меня есть большой словарь, ключи которого является "1" и "2" и "3", а также его значения "{дом: красный, индекс = 1}" и "{Дом: синий, индекс = 2}" и "{Дом: зеленый, индекс = 3}". Как вы можете увидеть значение большого словаря также словари самого себе. Та же логика применима и для dictionary_2. Моя цель состоит в том, чтобы сравнить значения двух больших словарей: «dictionary_1» и «dictionary_2». Затем, если «Индекс» элементы двух словарей имеют то же значение, я хочу, чтобы объединить их вместе, не дублируя «индекс» пункт. Поэтому выход должен быть чем-то вроде: dictionary_output = {1 {Дом: красный, индекс = 1, высота: 5}, 2 {Дом: синий, индекс = 2, высота: 6}, 3 {Дом: зеленый, индекс = 3 , высота: 3}}
Dj_ 96
1

голосов
0

ответ
20

Просмотры

WPF KeyBinding с несколькими символов

Я хотел бы создать KeyBinding в коде за помощью этой комбинации: Ctrl + Shift + Right + Left, так что я сделал: KeyBinding б = новый KeyBinding () {Command = SpvCommands.ChangeUser, Key = Key.LeftCtrl, // Жест = новый KeyGesture (Key.LeftShiftKey); }; InputBindings.Add (б); Как создать gestuyre с многопостовым?

Просмотр дополнительных вопросов