Что касается дополнительной безопасности, обеспечиваемой хешированием, это зависит от того, сколько итераций хэша вы используете. В качестве примера скажем, что вы решили использовать 2 ^ 14 хеш-итерации. Это увеличивает энтропию пароля на 14 бит. Согласно Закону Мура, каждый дополнительный бит энтропии, предоставляемый хешем, означает приблизительно 18 дополнительных месяцев, чтобы взломать пароль в то же время, что и сегодня. Таким образом, это будет 21 год (14 х 18 месяцев) до того, как итерированный хеш может быть взломан в то же время, что и исходный пароль может быть взломан сегодня.
Дополнительная безопасность, обеспечиваемая засолением, заключается в том, что она предотвращает использование радужных столов.
<mat-radio-group [(ngModel)]="expressType">
<mat-radio-button class="example-radio-button" *ngFor="let te of typeExpress" [value]="te">
{{ te }}
</mat-radio-button>
</mat-radio-group>
ОПЦИЯ 1
<ng-template [ngIf]="expressType == 'Component 1'">
<app-component1></app-component1>
</ng-template>
<ng-template [ngIf]="expressType == 'Component 2'">
<app-component2></app-component2>
</ng-template>
<ng-template [ngIf]="expressType == 'Component 3'">
<app-component3></app-component3>
</ng-template>
ВАРИАНТ 2
<ng-template [ngSwitch]="expressType'">
<app-component1 *ngSwitchCase="'Component 1'"></app-component1>
<app-component2 *ngSwitchCase="'Component 2'"></app-component2>
<app-component3 *ngSwitchCase="'Component 3'"></app-component3>
</ng-template>
ВАРИАНТ 3 [116 ]
<app-component1 *ngIf="expressType == 'Component 1'"></app-component1>
<app-component2 *ngIf="expressType == 'Component 2'"></app-component2>
<app-component3 *ngIf="expressType == 'Component 3'"></app-component3>
Обратите внимание, что вы сравниваете te вместо значения модели expressType
blockquote>
Вы должны использовать ng-container
вместо ng-template
и expressType
вместо te
для сравнения со значением Component n
.
Попробуйте:
<mat-radio-group [(ngModel)]="expressType">
<mat-radio-button class="example-radio-button" *ngFor="let te of typeExpress" [value]="te">
{{ te }}
</mat-radio-button>
</mat-radio-group>
<ng-container *ngIf="expressType === 'Component 1'">
<app-component1></app-component1>
</ng-container>
<ng-container *ngIf="expressType === 'Component 2'">
<app-component2></app-component2>
</ng-container>
<ng-container *ngIf="expressType === 'Component 3'">
<app-component3></app-component3>
</ng-container>
<h1>Or with ng-template</h1>
<ng-template [ngIf]="expressType === 'Component 1'">
<app-component1></app-component1>
</ng-template>
<ng-template [ngIf]="expressType === 'Component 2'">
<app-component2></app-component2>
</ng-template>
<ng-template [ngIf]="expressType === 'Component 3'">
<app-component3></app-component3>
</ng-template>
<!-- Copyright 2018 Google Inc. All Rights Reserved.
Use of this source code is governed by an MIT-style license that
can be found in the LICENSE file at http://angular.io/license -->
enter code here
Вот Рабочий образец StackBlitz для вашей ссылки.
BLOCKQUOTE>