A cylinder lock device, programmable an infinite number of times through a mechanical sequence, and a key for the said lock, comprising: - at least one key featuring at least one body having a protruding part on the surface of which can be machined a sequence of indentations; and - at least one rotor body, and - at least one stator featuring at least one cavity capable to house, even if only partially, other parts of the lock device; and - at least one locking mechanism that is driven by the action of the key between a first "locked" configuration, in which the free rotation of the rotor with respect to the stator is not possible, and a second "unlocked" configuration in which the rotor, driven by the rotation of the key, can freely rotate, and the said locking mechanism comprises at least one dial member (6, and from 6-1 to 6-6) that can couple with at least part of the indentations on the key body and that dial member comprises at least two sub-components (7, 8) that can be coupled reciprocally in a multiplicity of different positions each of which realizes a different configuration of the dial member that matches with a specific type of indentation on the key body; and - at least one programming mechanism that can be driven between a first "coupled" configuration where the sub-components (7, 8) of the dial members are coupled reciprocally in a way that allows the sub-component that couples to the key indentation to drive the position of the other sub-component, and a second "decoupled" configuration where the sub-components (7, 8) can change their relative position in order to reach a different configuration of the dial member; - at least one "programming mode enable" security mechanism, characterised by the fact that: - the said key comprises a mechanism having at least one moving member capable to rotate and/or translate with respect to the body of the key; and that - the least one "programming mode enable" security mechanism can be driven only through the mechanism with the moving member on the key and allows the activation of the programming mechanism only when, at the same time, the security mechanism itself is properly driven by the mechanism of the key and the locking mechanism is in the "unlocked" configuration. - at least one key featuring at least one body having a protruding part on the surface of which can be machined a sequence of indentations; and - at least one rotor body, and - at least one stator featuring at least one cavity capable to house, even if only partially, other parts of the lock device; and - at least one locking mechanism that is driven by the action of the key between a first "locked" configuration, in which the free rotation of the rotor with respect to the stator is not possible, and a second "unlocked" configuration in which the rotor, driven by the rotation of the key, can freely rotate, and the said locking mechanism comprises at least one dial member (6, and from 6-1 to 6-6) that can couple with at least part of the indentations on the key body and that dial member comprises at least two sub-components (7, 8) that can be coupled reciprocally in a multiplicity of different positions each of which realizes a different configuration of the dial member that matches with a specific type of indentation on the key body; and - at least one programming mechanism that can be driven between a first "coupled" configuration where the sub-components (7, 8) of the dial members are coupled reciprocally in a way that allows the sub-component that couples to the key indentation to drive the position of the other sub-component, and a second "decoupled" configuration where the sub-components (7, 8) can change their relative position in order to reach a different configuration of the dial member; - at least one "programming mode enable" security mechanism, - the said key comprises a mechanism having at least one moving member capable to rotate and/or translate with respect to the body of the key; and that - the least one "programming mode enable" security mechanism can be driven only through the mechanism with the moving member on the key and allows the activation of the programming mechanism only when, at the same time, the security mechanism itself is properly driven by the mechanism of the key and the locking mechanism is in the "unlocked" configuration.