在Angular 5中生成md5哈希

时间:2018-03-24 23:24:11

标签: angular md5

在angular中,我想生成MD5哈希,所以我尝试安装npm模块。我试过'crypto-js','angular-md5',但很多都没有结果。

最后,我尝试使用'ts-md5'并且像其他所有人一样给我一个错误。

首先npm install --save ts-md5

然后:

import {Md5} from 'ts-md5/dist/md5';
@Injectable()
export class HeroService {
    constructor(
        private MD5: Md5
    ) { }
}

但我收到错误:

[Error] ERROR – Error: Uncaught (in promise): Error: StaticInjectorError(AppModule)[HeroService -> Md5]: 
  StaticInjectorError(Platform: core)[HeroService -> Md5]: 
    NullInjectorError: No provider for Md5!
get
resolveToken
tryResolveToken
[...]

md5中是否有更好的加密模块?我该如何解决这个错误?

2 个答案:

答案 0 :(得分:7)

最后,最好的方法是直接在必须使用它的组件中导入它,并使用new Md5()调用它。

import {Md5} from 'ts-md5/dist/md5';

const md5 = new Md5();
console.log(md5.appendStr('hello').end());

感谢所有人的快速回复。

答案 1 :(得分:3)

你不能像这样注入MD5类,因为角度依赖注入框架不知道如何提供它。您只能要求提供@NgModule个提供程序中提供的类或已被其他导入的@NgModules添加到提供程序的类。

您应该从构造函数中删除private MD5: Md,看看它是否有效。另请查看angular cli global scripts