2016-10-04 5 views
-2

Ich versuche AWS accessKey und secretKey zu validieren. Haben Sie einen AWS Blog-Post, die einen regulären Ausdruck vorschlagen accessKey und SecretKey https://blogs.aws.amazon.com/security/post/Tx1XG3FX6VMU6O5/A-safer-way-to-distribute-AWS-credentials-to-EC2Gleichwertige Regex in Javascript

zu validieren Aber die regex sie enthält vorgeschlagen negativen Lookbehind, wie wir Java-Script wissen nicht negativ in regex Lookbehind nicht unterstützt. Also kann jemand bitte einen gleichwertigen Regex in JavaScript vorschlagen.

AccessKey: (?<![A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9]) 
This means find me 20-character, uppercase, alphanumeric strings that don’t have any uppercase, alphanumeric characters immediately before or after. 

SecretKey: (?<![A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=]) 
This means find me 40-character, base-64 strings that don’t have any base 64 characters immediately before or after. 

Beispiel String: https://regex101.com/r/wn7t9D/3

Jede Hilfe/Anregung ist wirklich zu schätzen.

Dank Ruman

+1

Bitte beachten Sie die * Strings schreiben * Sie versuchen, hier zu passen, anstatt einen Link – choz

+0

leider vergessen, die regex Linie in der Beschreibung der Entsendung einrücken, bearbeitet die Post. Danke –

+0

Sie können einen String umkehren und positiven Lookahead ... –

Antwort

1

Sie können einen Wechsel von dem Beginn der Zeichenfolge und eine negierte Zeichenklasse mit dem A-Z0-9 Bereich anstelle des negativen Lookbehind verwenden:

AccessKey:

(^|[^A-Z0-9])[A-Z0-9]{20}(?![A-Z0-9]) 
^^^^^^^^^^^^^ 

Siehe die regex demo

SecretKey:

(^|[^A-Za-z0-9/+=])[A-Za-z0-9/+=]{40}(?![A-Za-z0-9/+=]) 
^^^^^^^^^^^^^^^^^^^ 

Another regex demo

+1

Danke. Es funktionierte.. –